401c87:	8b 53 20             	mov    0x20(%ebx),%edx
401c8a:	89 54 24 1c          	mov    %edx,0x1c(%esp)
401c8e:	8b 43 24             	mov    0x24(%ebx),%eax
401c91:	89 44 24 20          	mov    %eax,0x20(%esp)
401c95:	8b 4b 28             	mov    0x28(%ebx),%ecx
401c98:	89 4c 24 24          	mov    %ecx,0x24(%esp)
401c9c:	8b 53 2c             	mov    0x2c(%ebx),%edx
401c9f:	89 54 24 28          	mov    %edx,0x28(%esp)
401ca3:	8b 43 30             	mov    0x30(%ebx),%eax
401ca6:	89 44 24 2c          	mov    %eax,0x2c(%esp)
401caa:	8b 4b 34             	mov    0x34(%ebx),%ecx
401cad:	89 4c 24 30          	mov    %ecx,0x30(%esp)
401cb1:	8b 43 3c             	mov    0x3c(%ebx),%eax
401cb4:	c7 44 24 34 c8 be 45 	movl   $0x45bec8,0x34(%esp)
401cbb:	00
401cbc:	85 c0                	test   %eax,%eax
401cbe:	74 04                	je     0x401cc4
401cc0:	89 44 24 34          	mov    %eax,0x34(%esp)
401cc4:	8b 53 40             	mov    0x40(%ebx),%edx
401cc7:	89 54 24 38          	mov    %edx,0x38(%esp)
401ccb:	8b 43 44             	mov    0x44(%ebx),%eax
401cce:	89 44 24 3c          	mov    %eax,0x3c(%esp)
401cd2:	8b 4b 48             	mov    0x48(%ebx),%ecx
401cd5:	8b 44 24 7c          	mov    0x7c(%esp),%eax
401cd9:	89 4c 24 40          	mov    %ecx,0x40(%esp)
401cdd:	8b 53 4c             	mov    0x4c(%ebx),%edx
401ce0:	89 54 24 44          	mov    %edx,0x44(%esp)
401ce4:	8d 73 58             	lea    0x58(%ebx),%esi
401ce7:	b9 0b 00 00 00       	mov    $0xb,%ecx
401cec:	8d 7c 24 48          	lea    0x48(%esp),%edi
401cf0:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
401cf2:	50                   	push   %eax
401cf3:	8d 4c 24 18          	lea    0x18(%esp),%ecx
401cf7:	51                   	push   %ecx
401cf8:	ff 94 24 80 00 00 00 	call   *0x80(%esp)
401cff:	83 c4 08             	add    $0x8,%esp
401d02:	85 c0                	test   %eax,%eax
401d04:	74 0e                	je     0x401d14
401d06:	8b 03                	mov    (%ebx),%eax
401d08:	85 c0                	test   %eax,%eax
401d0a:	74 08                	je     0x401d14
401d0c:	03 d8                	add    %eax,%ebx
401d0e:	0f 85 6c ff ff ff    	jne    0x401c80
401d14:	33 f6                	xor    %esi,%esi
401d16:	55                   	push   %ebp
401d17:	e8 81 ec 02 00       	call   0x43099d
401d1c:	83 c4 04             	add    $0x4,%esp
401d1f:	5b                   	pop    %ebx
401d20:	5f                   	pop    %edi
401d21:	8b c6                	mov    %esi,%eax
401d23:	5e                   	pop    %esi
401d24:	5d                   	pop    %ebp
401d25:	83 c4 64             	add    $0x64,%esp
401d28:	c3                   	ret
401d29:	cc                   	int3
401d2a:	cc                   	int3
401d2b:	cc                   	int3
401d2c:	cc                   	int3
401d2d:	cc                   	int3
401d2e:	cc                   	int3
401d2f:	cc                   	int3
401d30:	8b 44 24 08          	mov    0x8(%esp),%eax
401d34:	8b 48 04             	mov    0x4(%eax),%ecx
401d37:	51                   	push   %ecx
401d38:	8b 4c 24 08          	mov    0x8(%esp),%ecx
401d3c:	8b 51 20             	mov    0x20(%ecx),%edx
401d3f:	8b 49 28             	mov    0x28(%ecx),%ecx
401d42:	52                   	push   %edx
401d43:	8b 10                	mov    (%eax),%edx
401d45:	51                   	push   %ecx
401d46:	ff d2                	call   *%edx
401d48:	83 c4 0c             	add    $0xc,%esp
401d4b:	c3                   	ret
401d4c:	cc                   	int3
401d4d:	cc                   	int3
401d4e:	cc                   	int3
401d4f:	cc                   	int3
401d50:	83 ec 08             	sub    $0x8,%esp
401d53:	8b 44 24 0c          	mov    0xc(%esp),%eax
401d57:	8b 4c 24 10          	mov    0x10(%esp),%ecx
401d5b:	8d 14 24             	lea    (%esp),%edx
401d5e:	52                   	push   %edx
401d5f:	68 30 1d 40 00       	push   $0x401d30
401d64:	89 44 24 08          	mov    %eax,0x8(%esp)
401d68:	89 4c 24 0c          	mov    %ecx,0xc(%esp)
401d6c:	e8 4f fe ff ff       	call   0x401bc0
401d71:	83 c4 10             	add    $0x10,%esp
401d74:	c3                   	ret
401d75:	cc                   	int3
401d76:	cc                   	int3
401d77:	cc                   	int3
401d78:	cc                   	int3
401d79:	cc                   	int3
401d7a:	cc                   	int3
401d7b:	cc                   	int3
401d7c:	cc                   	int3
401d7d:	cc                   	int3
401d7e:	cc                   	int3
401d7f:	cc                   	int3
401d80:	81 ec 3c 03 00 00    	sub    $0x33c,%esp
401d86:	55                   	push   %ebp
401d87:	56                   	push   %esi
401d88:	57                   	push   %edi
401d89:	33 ed                	xor    %ebp,%ebp
401d8b:	e8 80 16 00 00       	call   0x403410
401d90:	8b 84 24 4c 03 00 00 	mov    0x34c(%esp),%eax
401d97:	50                   	push   %eax
401d98:	55                   	push   %ebp
401d99:	68 10 04 00 00       	push   $0x410
401d9e:	ff 15 30 34 47 00    	call   *0x473430
401da4:	8b f8                	mov    %eax,%edi
401da6:	ff 15 24 34 47 00    	call   *0x473424
401dac:	8b f0                	mov    %eax,%esi
401dae:	e8 0d 17 00 00       	call   0x4034c0
401db3:	85 ff                	test   %edi,%edi
401db5:	0f 84 dc 01 00 00    	je     0x401f97
401dbb:	8d 8c 24 f0 00 00 00 	lea    0xf0(%esp),%ecx
401dc2:	51                   	push   %ecx
401dc3:	57                   	push   %edi
401dc4:	e8 87 fb ff ff       	call   0x401950
401dc9:	8b f0                	mov    %eax,%esi
401dcb:	83 c4 08             	add    $0x8,%esp
401dce:	85 f6                	test   %esi,%esi
401dd0:	0f 85 ba 01 00 00    	jne    0x401f90
401dd6:	8b 8c 24 fc 00 00 00 	mov    0xfc(%esp),%ecx
401ddd:	53                   	push   %ebx
401dde:	8b 1d 28 34 47 00    	mov    0x473428,%ebx
401de4:	8d 54 24 10          	lea    0x10(%esp),%edx
401de8:	52                   	push   %edx
401de9:	6a 24                	push   $0x24
401deb:	8d 84 24 d8 00 00 00 	lea    0xd8(%esp),%eax
401df2:	50                   	push   %eax
401df3:	51                   	push   %ecx
401df4:	57                   	push   %edi
401df5:	ff d3                	call   *%ebx
401df7:	85 c0                	test   %eax,%eax
401df9:	0f 84 88 01 00 00    	je     0x401f87
401dff:	83 7c 24 10 24       	cmpl   $0x24,0x10(%esp)
401e04:	0f 85 7d 01 00 00    	jne    0x401f87
401e0a:	8b 94 24 00 01 00 00 	mov    0x100(%esp),%edx
401e11:	8b 84 24 dc 00 00 00 	mov    0xdc(%esp),%eax
401e18:	83 c2 0c             	add    $0xc,%edx
401e1b:	89 54 24 14          	mov    %edx,0x14(%esp)
401e1f:	89 44 24 38          	mov    %eax,0x38(%esp)
401e23:	8d 4c 24 10          	lea    0x10(%esp),%ecx
401e27:	51                   	push   %ecx
401e28:	68 98 00 00 00       	push   $0x98
401e2d:	8d 54 24 40          	lea    0x40(%esp),%edx
401e31:	52                   	push   %edx
401e32:	50                   	push   %eax
401e33:	57                   	push   %edi
401e34:	ff d3                	call   *%ebx
401e36:	85 c0                	test   %eax,%eax
401e38:	0f 84 49 01 00 00    	je     0x401f87
401e3e:	81 7c 24 10 98 00 00 	cmpl   $0x98,0x10(%esp)
401e45:	00
401e46:	0f 85 3b 01 00 00    	jne    0x401f87
401e4c:	8b 4c 24 54          	mov    0x54(%esp),%ecx
401e50:	8b 44 24 50          	mov    0x50(%esp),%eax
401e54:	0f b7 74 24 5c       	movzwl 0x5c(%esp),%esi
401e59:	8b 54 24 58          	mov    0x58(%esp),%edx
401e5d:	89 4c 24 1c          	mov    %ecx,0x1c(%esp)
401e61:	66 8b 4c 24 72       	mov    0x72(%esp),%cx
401e66:	89 44 24 18          	mov    %eax,0x18(%esp)
401e6a:	66 8b 44 24 70       	mov    0x70(%esp),%ax
401e6f:	66 89 4c 24 2e       	mov    %cx,0x2e(%esp)
401e74:	89 54 24 20          	mov    %edx,0x20(%esp)
401e78:	8b 54 24 7c          	mov    0x7c(%esp),%edx
401e7c:	66 89 44 24 2c       	mov    %ax,0x2c(%esp)
401e81:	8b 84 24 50 03 00 00 	mov    0x350(%esp),%eax
401e88:	8d 4e 02             	lea    0x2(%esi),%ecx
401e8b:	51                   	push   %ecx
401e8c:	89 54 24 34          	mov    %edx,0x34(%esp)
401e90:	89 44 24 38          	mov    %eax,0x38(%esp)
401e94:	e8 7d eb 02 00       	call   0x430a16
401e99:	83 c4 04             	add    $0x4,%esp
401e9c:	8d 54 24 10          	lea    0x10(%esp),%edx
401ea0:	52                   	push   %edx
401ea1:	56                   	push   %esi
401ea2:	50                   	push   %eax
401ea3:	89 44 24 30          	mov    %eax,0x30(%esp)
401ea7:	8b 44 24 6c          	mov    0x6c(%esp),%eax
401eab:	50                   	push   %eax
401eac:	57                   	push   %edi
401ead:	ff d3                	call   *%ebx
401eaf:	85 c0                	test   %eax,%eax
401eb1:	0f 84 d0 00 00 00    	je     0x401f87
401eb7:	0f b7 44 24 5c       	movzwl 0x5c(%esp),%eax
401ebc:	39 44 24 10          	cmp    %eax,0x10(%esp)
401ec0:	0f 85 c1 00 00 00    	jne    0x401f87
401ec6:	8b 54 24 24          	mov    0x24(%esp),%edx
401eca:	d1 e8                	shr    $1,%eax
401ecc:	33 c9                	xor    %ecx,%ecx
401ece:	66 89 0c 42          	mov    %cx,(%edx,%eax,2)
401ed2:	0f b7 74 24 64       	movzwl 0x64(%esp),%esi
401ed7:	8d 46 02             	lea    0x2(%esi),%eax
401eda:	50                   	push   %eax
401edb:	e8 36 eb 02 00       	call   0x430a16
401ee0:	8b 54 24 6c          	mov    0x6c(%esp),%edx
401ee4:	83 c4 04             	add    $0x4,%esp
401ee7:	8d 4c 24 10          	lea    0x10(%esp),%ecx
401eeb:	51                   	push   %ecx
401eec:	56                   	push   %esi
401eed:	50                   	push   %eax
401eee:	52                   	push   %edx
401eef:	57                   	push   %edi
401ef0:	89 44 24 3c          	mov    %eax,0x3c(%esp)
401ef4:	ff d3                	call   *%ebx
401ef6:	85 c0                	test   %eax,%eax
401ef8:	0f 84 89 00 00 00    	je     0x401f87
401efe:	0f b7 44 24 64       	movzwl 0x64(%esp),%eax
401f03:	39 44 24 10          	cmp    %eax,0x10(%esp)
401f07:	75 7e                	jne    0x401f87
401f09:	8b 54 24 28          	mov    0x28(%esp),%edx
401f0d:	d1 e8                	shr    $1,%eax
401f0f:	33 c9                	xor    %ecx,%ecx
401f11:	66 89 0c 42          	mov    %cx,(%edx,%eax,2)
401f15:	8b 84 24 58 03 00 00 	mov    0x358(%esp),%eax
401f1c:	50                   	push   %eax
401f1d:	8d 4c 24 1c          	lea    0x1c(%esp),%ecx
401f21:	51                   	push   %ecx
401f22:	ff 94 24 5c 03 00 00 	call   *0x35c(%esp)
401f29:	8b 54 24 2c          	mov    0x2c(%esp),%edx
401f2d:	52                   	push   %edx
401f2e:	8b f0                	mov    %eax,%esi
401f30:	e8 68 ea 02 00       	call   0x43099d
401f35:	8b 44 24 34          	mov    0x34(%esp),%eax
401f39:	50                   	push   %eax
401f3a:	e8 5e ea 02 00       	call   0x43099d
401f3f:	83 c4 10             	add    $0x10,%esp
401f42:	85 f6                	test   %esi,%esi
401f44:	74 19                	je     0x401f5f
401f46:	8b 44 24 38          	mov    0x38(%esp),%eax
401f4a:	3b 44 24 14          	cmp    0x14(%esp),%eax
401f4e:	74 0f                	je     0x401f5f
401f50:	8b cd                	mov    %ebp,%ecx
401f52:	45                   	inc    %ebp
401f53:	81 f9 00 08 00 00    	cmp    $0x800,%ecx
401f59:	0f 8c c4 fe ff ff    	jl     0x401e23
401f5f:	33 d2                	xor    %edx,%edx
401f61:	81 fd 00 08 00 00    	cmp    $0x800,%ebp
401f67:	0f 9c c2             	setl   %dl
401f6a:	5b                   	pop    %ebx
401f6b:	57                   	push   %edi
401f6c:	8d 72 ff             	lea    -0x1(%edx),%esi
401f6f:	81 e6 d6 00 00 00    	and    $0xd6,%esi
401f75:	ff 15 2c 34 47 00    	call   *0x47342c
401f7b:	5f                   	pop    %edi
401f7c:	8b c6                	mov    %esi,%eax
401f7e:	5e                   	pop    %esi
401f7f:	5d                   	pop    %ebp
401f80:	81 c4 3c 03 00 00    	add    $0x33c,%esp
401f86:	c3                   	ret
401f87:	ff 15 24 34 47 00    	call   *0x473424
401f8d:	8b f0                	mov    %eax,%esi
401f8f:	5b                   	pop    %ebx
401f90:	57                   	push   %edi
401f91:	ff 15 2c 34 47 00    	call   *0x47342c
401f97:	5f                   	pop    %edi
401f98:	8b c6                	mov    %esi,%eax
401f9a:	5e                   	pop    %esi
401f9b:	5d                   	pop    %ebp
401f9c:	81 c4 3c 03 00 00    	add    $0x33c,%esp
401fa2:	c3                   	ret
401fa3:	cc                   	int3
401fa4:	cc                   	int3
401fa5:	cc                   	int3
401fa6:	cc                   	int3
401fa7:	cc                   	int3
401fa8:	cc                   	int3
401fa9:	cc                   	int3
401faa:	cc                   	int3
401fab:	cc                   	int3
401fac:	cc                   	int3
401fad:	cc                   	int3
401fae:	cc                   	int3
401faf:	cc                   	int3
401fb0:	8b 44 24 04          	mov    0x4(%esp),%eax
401fb4:	8b 48 28             	mov    0x28(%eax),%ecx
401fb7:	85 c9                	test   %ecx,%ecx
401fb9:	74 14                	je     0x401fcf
401fbb:	8b 44 24 08          	mov    0x8(%esp),%eax
401fbf:	8b 50 04             	mov    0x4(%eax),%edx
401fc2:	8b 00                	mov    (%eax),%eax
401fc4:	52                   	push   %edx
401fc5:	50                   	push   %eax
401fc6:	51                   	push   %ecx
401fc7:	e8 b4 fd ff ff       	call   0x401d80
401fcc:	83 c4 0c             	add    $0xc,%esp
401fcf:	b8 01 00 00 00       	mov    $0x1,%eax
401fd4:	c3                   	ret
401fd5:	cc                   	int3
401fd6:	cc                   	int3
401fd7:	cc                   	int3
401fd8:	cc                   	int3
401fd9:	cc                   	int3
401fda:	cc                   	int3
401fdb:	cc                   	int3
401fdc:	cc                   	int3
401fdd:	cc                   	int3
401fde:	cc                   	int3
401fdf:	cc                   	int3
401fe0:	83 ec 08             	sub    $0x8,%esp
401fe3:	8b 44 24 0c          	mov    0xc(%esp),%eax
401fe7:	8b 4c 24 10          	mov    0x10(%esp),%ecx
401feb:	8d 14 24             	lea    (%esp),%edx
401fee:	52                   	push   %edx
401fef:	68 b0 1f 40 00       	push   $0x401fb0
401ff4:	89 44 24 08          	mov    %eax,0x8(%esp)
401ff8:	89 4c 24 0c          	mov    %ecx,0xc(%esp)
401ffc:	e8 bf fb ff ff       	call   0x401bc0
402001:	83 c4 10             	add    $0x10,%esp
402004:	c3                   	ret
402005:	cc                   	int3
402006:	cc                   	int3
402007:	cc                   	int3
402008:	cc                   	int3
402009:	cc                   	int3
40200a:	cc                   	int3
40200b:	cc                   	int3
40200c:	cc                   	int3
40200d:	cc                   	int3
40200e:	cc                   	int3
40200f:	cc                   	int3
402010:	56                   	push   %esi
402011:	57                   	push   %edi
402012:	33 ff                	xor    %edi,%edi
402014:	e8 f7 13 00 00       	call   0x403410
402019:	8b 44 24 0c          	mov    0xc(%esp),%eax
40201d:	50                   	push   %eax
40201e:	57                   	push   %edi
40201f:	6a 01                	push   $0x1
402021:	ff 15 30 34 47 00    	call   *0x473430
402027:	8b f0                	mov    %eax,%esi
402029:	e8 92 14 00 00       	call   0x4034c0
40202e:	85 f6                	test   %esi,%esi
402030:	75 08                	jne    0x40203a
402032:	5f                   	pop    %edi
402033:	5e                   	pop    %esi
402034:	ff 25 24 34 47 00    	jmp    *0x473424
40203a:	6a ff                	push   $0xffffffff
40203c:	56                   	push   %esi
40203d:	ff 15 3c 34 47 00    	call   *0x47343c
402043:	85 c0                	test   %eax,%eax
402045:	75 08                	jne    0x40204f
402047:	ff 15 24 34 47 00    	call   *0x473424
40204d:	8b f8                	mov    %eax,%edi
40204f:	56                   	push   %esi
402050:	ff 15 2c 34 47 00    	call   *0x47342c
402056:	8b c7                	mov    %edi,%eax