408db8:	b8 04 00 00 00       	mov    $0x4,%eax
408dbd:	39 51 38             	cmp    %edx,0x38(%ecx)
408dc0:	0f 45 c2             	cmovne %edx,%eax
408dc3:	0b 41 0c             	or     0xc(%ecx),%eax
408dc6:	0b 45 08             	or     0x8(%ebp),%eax
408dc9:	50                   	push   %eax
408dca:	e8 31 d2 ff ff       	call   0x406000
408dcf:	5d                   	pop    %ebp
408dd0:	c2 08 00             	ret    $0x8
408dd3:	cc                   	int3
408dd4:	cc                   	int3
408dd5:	cc                   	int3
408dd6:	cc                   	int3
408dd7:	cc                   	int3
408dd8:	cc                   	int3
408dd9:	cc                   	int3
408dda:	cc                   	int3
408ddb:	cc                   	int3
408ddc:	cc                   	int3
408ddd:	cc                   	int3
408dde:	cc                   	int3
408ddf:	cc                   	int3
408de0:	55                   	push   %ebp
408de1:	8b ec                	mov    %esp,%ebp
408de3:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
408de7:	56                   	push   %esi
408de8:	8b f1                	mov    %ecx,%esi
408dea:	c7 06 2c e9 43 00    	movl   $0x43e92c,(%esi)
408df0:	74 0b                	je     0x408dfd
408df2:	6a 08                	push   $0x8
408df4:	56                   	push   %esi
408df5:	e8 be 0d 01 00       	call   0x419bb8
408dfa:	83 c4 08             	add    $0x8,%esp
408dfd:	8b c6                	mov    %esi,%eax
408dff:	5e                   	pop    %esi
408e00:	5d                   	pop    %ebp
408e01:	c2 04 00             	ret    $0x4
408e04:	cc                   	int3
408e05:	cc                   	int3
408e06:	cc                   	int3
408e07:	cc                   	int3
408e08:	cc                   	int3
408e09:	cc                   	int3
408e0a:	cc                   	int3
408e0b:	cc                   	int3
408e0c:	cc                   	int3
408e0d:	cc                   	int3
408e0e:	cc                   	int3
408e0f:	cc                   	int3
408e10:	55                   	push   %ebp
408e11:	8b ec                	mov    %esp,%ebp
408e13:	51                   	push   %ecx
408e14:	8b 51 14             	mov    0x14(%ecx),%edx
408e17:	8b ca                	mov    %edx,%ecx
408e19:	56                   	push   %esi
408e1a:	8b 75 08             	mov    0x8(%ebp),%esi
408e1d:	57                   	push   %edi
408e1e:	8d 79 02             	lea    0x2(%ecx),%edi
408e21:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
408e27:	c7 46 10 00 00 00 00 	movl   $0x0,0x10(%esi)
408e2e:	c7 46 14 00 00 00 00 	movl   $0x0,0x14(%esi)
408e35:	66 8b 01             	mov    (%ecx),%ax
408e38:	83 c1 02             	add    $0x2,%ecx
408e3b:	66 85 c0             	test   %ax,%ax
408e3e:	75 f5                	jne    0x408e35
408e40:	2b cf                	sub    %edi,%ecx
408e42:	d1 f9                	sar    $1,%ecx
408e44:	51                   	push   %ecx
408e45:	52                   	push   %edx
408e46:	8b ce                	mov    %esi,%ecx
408e48:	e8 b3 a1 ff ff       	call   0x403000
408e4d:	5f                   	pop    %edi
408e4e:	8b c6                	mov    %esi,%eax
408e50:	5e                   	pop    %esi
408e51:	8b e5                	mov    %ebp,%esp
408e53:	5d                   	pop    %ebp
408e54:	c2 04 00             	ret    $0x4
408e57:	cc                   	int3
408e58:	cc                   	int3
408e59:	cc                   	int3
408e5a:	cc                   	int3
408e5b:	cc                   	int3
408e5c:	cc                   	int3
408e5d:	cc                   	int3
408e5e:	cc                   	int3
408e5f:	cc                   	int3
408e60:	55                   	push   %ebp
408e61:	8b ec                	mov    %esp,%ebp
408e63:	51                   	push   %ecx
408e64:	8b 51 10             	mov    0x10(%ecx),%edx
408e67:	8b ca                	mov    %edx,%ecx
408e69:	56                   	push   %esi
408e6a:	8b 75 08             	mov    0x8(%ebp),%esi
408e6d:	57                   	push   %edi
408e6e:	8d 79 02             	lea    0x2(%ecx),%edi
408e71:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
408e77:	c7 46 10 00 00 00 00 	movl   $0x0,0x10(%esi)
408e7e:	c7 46 14 00 00 00 00 	movl   $0x0,0x14(%esi)
408e85:	66 8b 01             	mov    (%ecx),%ax
408e88:	83 c1 02             	add    $0x2,%ecx
408e8b:	66 85 c0             	test   %ax,%ax
408e8e:	75 f5                	jne    0x408e85
408e90:	2b cf                	sub    %edi,%ecx
408e92:	d1 f9                	sar    $1,%ecx
408e94:	51                   	push   %ecx
408e95:	52                   	push   %edx
408e96:	8b ce                	mov    %esi,%ecx
408e98:	e8 63 a1 ff ff       	call   0x403000
408e9d:	5f                   	pop    %edi
408e9e:	8b c6                	mov    %esi,%eax
408ea0:	5e                   	pop    %esi
408ea1:	8b e5                	mov    %ebp,%esp
408ea3:	5d                   	pop    %ebp
408ea4:	c2 04 00             	ret    $0x4
408ea7:	cc                   	int3
408ea8:	cc                   	int3
408ea9:	cc                   	int3
408eaa:	cc                   	int3
408eab:	cc                   	int3
408eac:	cc                   	int3
408ead:	cc                   	int3
408eae:	cc                   	int3
408eaf:	cc                   	int3
408eb0:	55                   	push   %ebp
408eb1:	8b ec                	mov    %esp,%ebp
408eb3:	51                   	push   %ecx
408eb4:	8b 51 08             	mov    0x8(%ecx),%edx
408eb7:	8b ca                	mov    %edx,%ecx
408eb9:	56                   	push   %esi
408eba:	8b 75 08             	mov    0x8(%ebp),%esi
408ebd:	57                   	push   %edi
408ebe:	8d 79 01             	lea    0x1(%ecx),%edi
408ec1:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
408ec7:	c7 46 10 00 00 00 00 	movl   $0x0,0x10(%esi)
408ece:	c7 46 14 00 00 00 00 	movl   $0x0,0x14(%esi)
408ed5:	8a 01                	mov    (%ecx),%al
408ed7:	41                   	inc    %ecx
408ed8:	84 c0                	test   %al,%al
408eda:	75 f9                	jne    0x408ed5
408edc:	2b cf                	sub    %edi,%ecx
408ede:	51                   	push   %ecx
408edf:	52                   	push   %edx
408ee0:	8b ce                	mov    %esi,%ecx
408ee2:	e8 a9 d7 ff ff       	call   0x406690
408ee7:	5f                   	pop    %edi
408ee8:	8b c6                	mov    %esi,%eax
408eea:	5e                   	pop    %esi
408eeb:	8b e5                	mov    %ebp,%esp
408eed:	5d                   	pop    %ebp
408eee:	c2 04 00             	ret    $0x4
408ef1:	cc                   	int3
408ef2:	cc                   	int3
408ef3:	cc                   	int3
408ef4:	cc                   	int3
408ef5:	cc                   	int3
408ef6:	cc                   	int3
408ef7:	cc                   	int3
408ef8:	cc                   	int3
408ef9:	cc                   	int3
408efa:	cc                   	int3
408efb:	cc                   	int3
408efc:	cc                   	int3
408efd:	cc                   	int3
408efe:	cc                   	int3
408eff:	cc                   	int3
408f00:	66 8b 41 0e          	mov    0xe(%ecx),%ax
408f04:	c3                   	ret
408f05:	cc                   	int3
408f06:	cc                   	int3
408f07:	cc                   	int3
408f08:	cc                   	int3
408f09:	cc                   	int3
408f0a:	cc                   	int3
408f0b:	cc                   	int3
408f0c:	cc                   	int3
408f0d:	cc                   	int3
408f0e:	cc                   	int3
408f0f:	cc                   	int3
408f10:	66 8b 41 0c          	mov    0xc(%ecx),%ax
408f14:	c3                   	ret
408f15:	cc                   	int3
408f16:	cc                   	int3
408f17:	cc                   	int3
408f18:	cc                   	int3
408f19:	cc                   	int3
408f1a:	cc                   	int3
408f1b:	cc                   	int3
408f1c:	cc                   	int3
408f1d:	cc                   	int3
408f1e:	cc                   	int3
408f1f:	cc                   	int3
408f20:	55                   	push   %ebp
408f21:	8b ec                	mov    %esp,%ebp
408f23:	51                   	push   %ecx
408f24:	8b 45 0c             	mov    0xc(%ebp),%eax
408f27:	53                   	push   %ebx
408f28:	8b 5d 1c             	mov    0x1c(%ebp),%ebx
408f2b:	89 45 fc             	mov    %eax,-0x4(%ebp)
408f2e:	56                   	push   %esi
408f2f:	8b 75 14             	mov    0x14(%ebp),%esi
408f32:	85 db                	test   %ebx,%ebx
408f34:	74 5c                	je     0x408f92
408f36:	57                   	push   %edi
408f37:	85 f6                	test   %esi,%esi
408f39:	74 4a                	je     0x408f85
408f3b:	8b 46 20             	mov    0x20(%esi),%eax
408f3e:	83 38 00             	cmpl   $0x0,(%eax)
408f41:	74 1e                	je     0x408f61
408f43:	8b 46 30             	mov    0x30(%esi),%eax
408f46:	8b 08                	mov    (%eax),%ecx
408f48:	85 c9                	test   %ecx,%ecx
408f4a:	7e 15                	jle    0x408f61
408f4c:	49                   	dec    %ecx
408f4d:	89 08                	mov    %ecx,(%eax)
408f4f:	8b 4e 20             	mov    0x20(%esi),%ecx
408f52:	8b 11                	mov    (%ecx),%edx
408f54:	8d 42 02             	lea    0x2(%edx),%eax
408f57:	89 01                	mov    %eax,(%ecx)
408f59:	8b 45 18             	mov    0x18(%ebp),%eax
408f5c:	66 89 02             	mov    %ax,(%edx)
408f5f:	eb 14                	jmp    0x408f75
408f61:	8b 06                	mov    (%esi),%eax
408f63:	ff 75 18             	push   0x18(%ebp)
408f66:	8b 78 0c             	mov    0xc(%eax),%edi
408f69:	8b cf                	mov    %edi,%ecx
408f6b:	ff 15 5c e2 43 00    	call   *0x43e25c
408f71:	8b ce                	mov    %esi,%ecx
408f73:	ff d7                	call   *%edi
408f75:	8b 75 14             	mov    0x14(%ebp),%esi
408f78:	b9 ff ff 00 00       	mov    $0xffff,%ecx
408f7d:	0f b7 c0             	movzwl %ax,%eax
408f80:	66 3b c8             	cmp    %ax,%cx
408f83:	75 04                	jne    0x408f89
408f85:	c6 45 10 01          	movb   $0x1,0x10(%ebp)
408f89:	83 eb 01             	sub    $0x1,%ebx
408f8c:	75 a9                	jne    0x408f37
408f8e:	8b 45 fc             	mov    -0x4(%ebp),%eax
408f91:	5f                   	pop    %edi
408f92:	8b 4d 10             	mov    0x10(%ebp),%ecx
408f95:	89 70 04             	mov    %esi,0x4(%eax)
408f98:	5e                   	pop    %esi
408f99:	89 08                	mov    %ecx,(%eax)
408f9b:	5b                   	pop    %ebx
408f9c:	8b e5                	mov    %ebp,%esp
408f9e:	5d                   	pop    %ebp
408f9f:	c3                   	ret
408fa0:	cc                   	int3
408fa1:	cc                   	int3
408fa2:	cc                   	int3
408fa3:	cc                   	int3
408fa4:	cc                   	int3
408fa5:	cc                   	int3
408fa6:	cc                   	int3
408fa7:	cc                   	int3
408fa8:	cc                   	int3
408fa9:	cc                   	int3
408faa:	cc                   	int3
408fab:	cc                   	int3
408fac:	cc                   	int3
408fad:	cc                   	int3
408fae:	cc                   	int3
408faf:	cc                   	int3
408fb0:	55                   	push   %ebp
408fb1:	8b ec                	mov    %esp,%ebp
408fb3:	83 ec 0c             	sub    $0xc,%esp
408fb6:	8b 45 0c             	mov    0xc(%ebp),%eax
408fb9:	53                   	push   %ebx
408fba:	8b 5d 1c             	mov    0x1c(%ebp),%ebx
408fbd:	89 45 f4             	mov    %eax,-0xc(%ebp)
408fc0:	56                   	push   %esi
408fc1:	8b 75 14             	mov    0x14(%ebp),%esi
408fc4:	57                   	push   %edi
408fc5:	8b 7d 18             	mov    0x18(%ebp),%edi
408fc8:	89 7d fc             	mov    %edi,-0x4(%ebp)
408fcb:	85 db                	test   %ebx,%ebx
408fcd:	74 6d                	je     0x40903c
408fcf:	90                   	nop
408fd0:	85 f6                	test   %esi,%esi
408fd2:	74 56                	je     0x40902a
408fd4:	8b 46 20             	mov    0x20(%esi),%eax
408fd7:	0f b7 0f             	movzwl (%edi),%ecx
408fda:	89 4d f8             	mov    %ecx,-0x8(%ebp)
408fdd:	83 38 00             	cmpl   $0x0,(%eax)
408fe0:	74 23                	je     0x409005
408fe2:	8b 46 30             	mov    0x30(%esi),%eax
408fe5:	8b 00                	mov    (%eax),%eax
408fe7:	85 c0                	test   %eax,%eax
408fe9:	7e 1a                	jle    0x409005
408feb:	8d 48 ff             	lea    -0x1(%eax),%ecx
408fee:	8b 46 30             	mov    0x30(%esi),%eax
408ff1:	89 08                	mov    %ecx,(%eax)
408ff3:	8b 4e 20             	mov    0x20(%esi),%ecx
408ff6:	8b 11                	mov    (%ecx),%edx
408ff8:	8d 42 02             	lea    0x2(%edx),%eax
408ffb:	89 01                	mov    %eax,(%ecx)
408ffd:	8b 45 f8             	mov    -0x8(%ebp),%eax
409000:	66 89 02             	mov    %ax,(%edx)
409003:	eb 15                	jmp    0x40901a
409005:	8b 06                	mov    (%esi),%eax
409007:	51                   	push   %ecx
409008:	8b 78 0c             	mov    0xc(%eax),%edi
40900b:	8b cf                	mov    %edi,%ecx
40900d:	ff 15 5c e2 43 00    	call   *0x43e25c
409013:	8b ce                	mov    %esi,%ecx
409015:	ff d7                	call   *%edi
409017:	8b 7d fc             	mov    -0x4(%ebp),%edi
40901a:	8b 75 14             	mov    0x14(%ebp),%esi
40901d:	b9 ff ff 00 00       	mov    $0xffff,%ecx
409022:	0f b7 c0             	movzwl %ax,%eax
409025:	66 3b c8             	cmp    %ax,%cx
409028:	75 04                	jne    0x40902e
40902a:	c6 45 10 01          	movb   $0x1,0x10(%ebp)
40902e:	83 c7 02             	add    $0x2,%edi
409031:	89 7d fc             	mov    %edi,-0x4(%ebp)
409034:	83 eb 01             	sub    $0x1,%ebx
409037:	75 97                	jne    0x408fd0
409039:	8b 45 f4             	mov    -0xc(%ebp),%eax
40903c:	8b 4d 10             	mov    0x10(%ebp),%ecx
40903f:	5f                   	pop    %edi
409040:	89 70 04             	mov    %esi,0x4(%eax)
409043:	5e                   	pop    %esi
409044:	89 08                	mov    %ecx,(%eax)
409046:	5b                   	pop    %ebx
409047:	8b e5                	mov    %ebp,%esp
409049:	5d                   	pop    %ebp
40904a:	c3                   	ret
40904b:	cc                   	int3
40904c:	cc                   	int3
40904d:	cc                   	int3
40904e:	cc                   	int3
40904f:	cc                   	int3
409050:	55                   	push   %ebp
409051:	8b ec                	mov    %esp,%ebp
409053:	6a ff                	push   $0xffffffff
409055:	68 55 bf 43 00       	push   $0x43bf55
40905a:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
409060:	50                   	push   %eax
409061:	83 ec 54             	sub    $0x54,%esp
409064:	a1 14 50 45 00       	mov    0x455014,%eax
409069:	33 c5                	xor    %ebp,%eax
40906b:	89 45 f0             	mov    %eax,-0x10(%ebp)
40906e:	53                   	push   %ebx
40906f:	56                   	push   %esi
409070:	57                   	push   %edi
409071:	50                   	push   %eax
409072:	8d 45 f4             	lea    -0xc(%ebp),%eax
409075:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
40907b:	8b 5d 24             	mov    0x24(%ebp),%ebx
40907e:	8b 45 0c             	mov    0xc(%ebp),%eax
409081:	8b 7d 18             	mov    0x18(%ebp),%edi