404c70:	89 47 38             	mov    %eax,0x38(%edi)
404c73:	f6 44 24 24 01       	testb  $0x1,0x24(%esp)
404c78:	0f 84 06 01 00 00    	je     0x404d84
404c7e:	8b cf                	mov    %edi,%ecx
404c80:	e8 cf fa ff ff       	call   0x404754
404c85:	85 c0                	test   %eax,%eax
404c87:	0f 84 f7 00 00 00    	je     0x404d84
404c8d:	8b 44 24 20          	mov    0x20(%esp),%eax
404c91:	83 f8 02             	cmp    $0x2,%eax
404c94:	75 12                	jne    0x404ca8
404c96:	8b cf                	mov    %edi,%ecx
404c98:	e8 c5 f8 ff ff       	call   0x404562
404c9d:	8b 4f 38             	mov    0x38(%edi),%ecx
404ca0:	2b c8                	sub    %eax,%ecx
404ca2:	d1 f9                	sar    $1,%ecx
404ca4:	8b c1                	mov    %ecx,%eax
404ca6:	eb 22                	jmp    0x404cca
404ca8:	83 f8 01             	cmp    $0x1,%eax
404cab:	75 2c                	jne    0x404cd9
404cad:	f6 44 24 24 02       	testb  $0x2,0x24(%esp)
404cb2:	75 29                	jne    0x404cdd
404cb4:	8b cf                	mov    %edi,%ecx
404cb6:	e8 99 fa ff ff       	call   0x404754
404cbb:	8b cf                	mov    %edi,%ecx
404cbd:	8b f0                	mov    %eax,%esi
404cbf:	e8 9e f8 ff ff       	call   0x404562
404cc4:	2b f0                	sub    %eax,%esi
404cc6:	d1 fe                	sar    $1,%esi
404cc8:	8b c6                	mov    %esi,%eax
404cca:	8b 5c 24 18          	mov    0x18(%esp),%ebx
404cce:	8b 6c 24 1c          	mov    0x1c(%esp),%ebp
404cd2:	99                   	cltd
404cd3:	03 d8                	add    %eax,%ebx
404cd5:	13 ea                	adc    %edx,%ebp
404cd7:	eb 1a                	jmp    0x404cf3
404cd9:	85 c0                	test   %eax,%eax
404cdb:	74 0e                	je     0x404ceb
404cdd:	8b 1d 30 81 42 00    	mov    0x428130,%ebx
404ce3:	8b 2d 34 81 42 00    	mov    0x428134,%ebp
404ce9:	eb 08                	jmp    0x404cf3
404ceb:	8b 6c 24 1c          	mov    0x1c(%esp),%ebp
404cef:	8b 5c 24 18          	mov    0x18(%esp),%ebx
404cf3:	85 ed                	test   %ebp,%ebp
404cf5:	0f 8c 55 01 00 00    	jl     0x404e50
404cfb:	7f 08                	jg     0x404d05
404cfd:	85 db                	test   %ebx,%ebx
404cff:	0f 82 4b 01 00 00    	jb     0x404e50
404d05:	8b cf                	mov    %edi,%ecx
404d07:	e8 56 f8 ff ff       	call   0x404562
404d0c:	8b 4f 38             	mov    0x38(%edi),%ecx
404d0f:	2b c8                	sub    %eax,%ecx
404d11:	d1 f9                	sar    $1,%ecx
404d13:	8b c1                	mov    %ecx,%eax
404d15:	99                   	cltd
404d16:	3b ea                	cmp    %edx,%ebp
404d18:	0f 8f 32 01 00 00    	jg     0x404e50
404d1e:	7c 08                	jl     0x404d28
404d20:	3b d8                	cmp    %eax,%ebx
404d22:	0f 87 28 01 00 00    	ja     0x404e50
404d28:	8b cf                	mov    %edi,%ecx
404d2a:	e8 33 f8 ff ff       	call   0x404562
404d2f:	8b cf                	mov    %edi,%ecx
404d31:	8b f0                	mov    %eax,%esi
404d33:	e8 1c fa ff ff       	call   0x404754
404d38:	2b f0                	sub    %eax,%esi
404d3a:	8b cf                	mov    %edi,%ecx
404d3c:	d1 fe                	sar    $1,%esi
404d3e:	03 f3                	add    %ebx,%esi
404d40:	56                   	push   %esi
404d41:	e8 d2 f9 ff ff       	call   0x404718
404d46:	f6 44 24 24 02       	testb  $0x2,0x24(%esp)
404d4b:	0f 84 0b 01 00 00    	je     0x404e5c
404d51:	8b cf                	mov    %edi,%ecx
404d53:	e8 c7 fe ff ff       	call   0x404c1f
404d58:	85 c0                	test   %eax,%eax
404d5a:	0f 84 fc 00 00 00    	je     0x404e5c
404d60:	8b cf                	mov    %edi,%ecx
404d62:	e8 21 f8 ff ff       	call   0x404588
404d67:	50                   	push   %eax
404d68:	8b cf                	mov    %edi,%ecx
404d6a:	e8 e5 f9 ff ff       	call   0x404754
404d6f:	50                   	push   %eax
404d70:	8b cf                	mov    %edi,%ecx
404d72:	e8 61 fe ff ff       	call   0x404bd8
404d77:	50                   	push   %eax
404d78:	8b cf                	mov    %edi,%ecx
404d7a:	e8 cc 02 00 00       	call   0x40504b
404d7f:	e9 d8 00 00 00       	jmp    0x404e5c
404d84:	f6 44 24 24 02       	testb  $0x2,0x24(%esp)
404d89:	0f 84 b3 00 00 00    	je     0x404e42
404d8f:	8b cf                	mov    %edi,%ecx
404d91:	e8 89 fe ff ff       	call   0x404c1f
404d96:	85 c0                	test   %eax,%eax
404d98:	0f 84 a4 00 00 00    	je     0x404e42
404d9e:	8b 44 24 20          	mov    0x20(%esp),%eax
404da2:	83 f8 02             	cmp    $0x2,%eax
404da5:	75 12                	jne    0x404db9
404da7:	8b cf                	mov    %edi,%ecx
404da9:	e8 b4 f7 ff ff       	call   0x404562
404dae:	8b 4f 38             	mov    0x38(%edi),%ecx
404db1:	2b c8                	sub    %eax,%ecx
404db3:	d1 f9                	sar    $1,%ecx
404db5:	8b c1                	mov    %ecx,%eax
404db7:	eb 1b                	jmp    0x404dd4
404db9:	83 f8 01             	cmp    $0x1,%eax
404dbc:	75 25                	jne    0x404de3
404dbe:	8b cf                	mov    %edi,%ecx
404dc0:	e8 5a fe ff ff       	call   0x404c1f
404dc5:	8b cf                	mov    %edi,%ecx
404dc7:	8b f0                	mov    %eax,%esi
404dc9:	e8 94 f7 ff ff       	call   0x404562
404dce:	2b f0                	sub    %eax,%esi
404dd0:	d1 fe                	sar    $1,%esi
404dd2:	8b c6                	mov    %esi,%eax
404dd4:	8b 5c 24 18          	mov    0x18(%esp),%ebx
404dd8:	8b 6c 24 1c          	mov    0x1c(%esp),%ebp
404ddc:	99                   	cltd
404ddd:	03 d8                	add    %eax,%ebx
404ddf:	13 ea                	adc    %edx,%ebp
404de1:	eb 1a                	jmp    0x404dfd
404de3:	85 c0                	test   %eax,%eax
404de5:	74 0e                	je     0x404df5
404de7:	8b 1d 30 81 42 00    	mov    0x428130,%ebx
404ded:	8b 2d 34 81 42 00    	mov    0x428134,%ebp
404df3:	eb 08                	jmp    0x404dfd
404df5:	8b 6c 24 1c          	mov    0x1c(%esp),%ebp
404df9:	8b 5c 24 18          	mov    0x18(%esp),%ebx
404dfd:	85 ed                	test   %ebp,%ebp
404dff:	7c 4f                	jl     0x404e50
404e01:	7f 04                	jg     0x404e07
404e03:	85 db                	test   %ebx,%ebx
404e05:	72 49                	jb     0x404e50
404e07:	8b cf                	mov    %edi,%ecx
404e09:	e8 54 f7 ff ff       	call   0x404562
404e0e:	8b 4f 38             	mov    0x38(%edi),%ecx
404e11:	2b c8                	sub    %eax,%ecx
404e13:	d1 f9                	sar    $1,%ecx
404e15:	8b c1                	mov    %ecx,%eax
404e17:	99                   	cltd
404e18:	3b ea                	cmp    %edx,%ebp
404e1a:	7f 34                	jg     0x404e50
404e1c:	7c 04                	jl     0x404e22
404e1e:	3b d8                	cmp    %eax,%ebx
404e20:	77 2e                	ja     0x404e50
404e22:	8b cf                	mov    %edi,%ecx
404e24:	e8 39 f7 ff ff       	call   0x404562
404e29:	8b cf                	mov    %edi,%ecx
404e2b:	8b f0                	mov    %eax,%esi
404e2d:	e8 ed fd ff ff       	call   0x404c1f
404e32:	2b f0                	sub    %eax,%esi
404e34:	8b cf                	mov    %edi,%ecx
404e36:	d1 fe                	sar    $1,%esi
404e38:	03 f3                	add    %ebx,%esi
404e3a:	56                   	push   %esi
404e3b:	e8 9e fd ff ff       	call   0x404bde
404e40:	eb 1a                	jmp    0x404e5c
404e42:	8b 5c 24 18          	mov    0x18(%esp),%ebx
404e46:	8b c3                	mov    %ebx,%eax
404e48:	8b 6c 24 1c          	mov    0x1c(%esp),%ebp
404e4c:	0b c5                	or     %ebp,%eax
404e4e:	74 0c                	je     0x404e5c
404e50:	8b 1d 30 81 42 00    	mov    0x428130,%ebx
404e56:	8b 2d 34 81 42 00    	mov    0x428134,%ebp
404e5c:	8b 4c 24 14          	mov    0x14(%esp),%ecx
404e60:	55                   	push   %ebp
404e61:	53                   	push   %ebx
404e62:	e8 64 db ff ff       	call   0x4029cb
404e67:	8b 44 24 14          	mov    0x14(%esp),%eax
404e6b:	5f                   	pop    %edi
404e6c:	5e                   	pop    %esi
404e6d:	5d                   	pop    %ebp
404e6e:	5b                   	pop    %ebx
404e6f:	c2 14 00             	ret    $0x14
404e72:	ff 35 34 81 42 00    	push   0x428134
404e78:	8b 4c 24 08          	mov    0x8(%esp),%ecx
404e7c:	ff 35 30 81 42 00    	push   0x428130
404e82:	e8 44 db ff ff       	call   0x4029cb
404e87:	8b 44 24 04          	mov    0x4(%esp),%eax
404e8b:	c2 20 00             	ret    $0x20
404e8e:	53                   	push   %ebx
404e8f:	55                   	push   %ebp
404e90:	56                   	push   %esi
404e91:	57                   	push   %edi
404e92:	8b f9                	mov    %ecx,%edi
404e94:	8d 4c 24 18          	lea    0x18(%esp),%ecx
404e98:	e8 31 e3 ff ff       	call   0x4031ce
404e9d:	8b cf                	mov    %edi,%ecx
404e9f:	8b d8                	mov    %eax,%ebx
404ea1:	8b ea                	mov    %edx,%ebp
404ea3:	e8 77 fd ff ff       	call   0x404c1f
404ea8:	85 c0                	test   %eax,%eax
404eaa:	74 16                	je     0x404ec2
404eac:	8b cf                	mov    %edi,%ecx
404eae:	e8 6c fd ff ff       	call   0x404c1f
404eb3:	39 47 38             	cmp    %eax,0x38(%edi)
404eb6:	73 0a                	jae    0x404ec2
404eb8:	8b cf                	mov    %edi,%ecx
404eba:	e8 60 fd ff ff       	call   0x404c1f
404ebf:	89 47 38             	mov    %eax,0x38(%edi)
404ec2:	8b 35 34 81 42 00    	mov    0x428134,%esi
404ec8:	3b 1d 30 81 42 00    	cmp    0x428130,%ebx
404ece:	75 08                	jne    0x404ed8
404ed0:	3b ee                	cmp    %esi,%ebp
404ed2:	0f 84 07 01 00 00    	je     0x404fdf
404ed8:	f6 44 24 30 01       	testb  $0x1,0x30(%esp)
404edd:	0f 84 9d 00 00 00    	je     0x404f80
404ee3:	8b cf                	mov    %edi,%ecx
404ee5:	e8 6a f8 ff ff       	call   0x404754
404eea:	85 c0                	test   %eax,%eax
404eec:	0f 84 8e 00 00 00    	je     0x404f80
404ef2:	85 ed                	test   %ebp,%ebp
404ef4:	0f 8c dd 00 00 00    	jl     0x404fd7
404efa:	7f 08                	jg     0x404f04
404efc:	85 db                	test   %ebx,%ebx
404efe:	0f 82 d3 00 00 00    	jb     0x404fd7
404f04:	8b cf                	mov    %edi,%ecx
404f06:	e8 57 f6 ff ff       	call   0x404562
404f0b:	8b 4f 38             	mov    0x38(%edi),%ecx
404f0e:	2b c8                	sub    %eax,%ecx
404f10:	d1 f9                	sar    $1,%ecx
404f12:	8b c1                	mov    %ecx,%eax
404f14:	99                   	cltd
404f15:	3b ea                	cmp    %edx,%ebp
404f17:	0f 8f ba 00 00 00    	jg     0x404fd7
404f1d:	7c 08                	jl     0x404f27
404f1f:	3b d8                	cmp    %eax,%ebx
404f21:	0f 87 b0 00 00 00    	ja     0x404fd7
404f27:	8b cf                	mov    %edi,%ecx
404f29:	e8 34 f6 ff ff       	call   0x404562
404f2e:	8b cf                	mov    %edi,%ecx
404f30:	8b f0                	mov    %eax,%esi
404f32:	e8 1d f8 ff ff       	call   0x404754
404f37:	2b f0                	sub    %eax,%esi
404f39:	8b cf                	mov    %edi,%ecx
404f3b:	d1 fe                	sar    $1,%esi
404f3d:	03 f3                	add    %ebx,%esi
404f3f:	56                   	push   %esi
404f40:	e8 d3 f7 ff ff       	call   0x404718
404f45:	f6 44 24 30 02       	testb  $0x2,0x30(%esp)
404f4a:	0f 84 8f 00 00 00    	je     0x404fdf
404f50:	8b cf                	mov    %edi,%ecx
404f52:	e8 c8 fc ff ff       	call   0x404c1f
404f57:	85 c0                	test   %eax,%eax
404f59:	0f 84 80 00 00 00    	je     0x404fdf
404f5f:	8b cf                	mov    %edi,%ecx
404f61:	e8 22 f6 ff ff       	call   0x404588
404f66:	50                   	push   %eax
404f67:	8b cf                	mov    %edi,%ecx
404f69:	e8 e6 f7 ff ff       	call   0x404754
404f6e:	50                   	push   %eax
404f6f:	8b cf                	mov    %edi,%ecx
404f71:	e8 62 fc ff ff       	call   0x404bd8
404f76:	50                   	push   %eax
404f77:	8b cf                	mov    %edi,%ecx
404f79:	e8 cd 00 00 00       	call   0x40504b
404f7e:	eb 5f                	jmp    0x404fdf
404f80:	f6 44 24 30 02       	testb  $0x2,0x30(%esp)
404f85:	74 50                	je     0x404fd7
404f87:	8b cf                	mov    %edi,%ecx
404f89:	e8 91 fc ff ff       	call   0x404c1f
404f8e:	85 c0                	test   %eax,%eax
404f90:	74 45                	je     0x404fd7
404f92:	85 ed                	test   %ebp,%ebp
404f94:	7c 41                	jl     0x404fd7
404f96:	7f 04                	jg     0x404f9c
404f98:	85 db                	test   %ebx,%ebx
404f9a:	72 3b                	jb     0x404fd7
404f9c:	8b cf                	mov    %edi,%ecx
404f9e:	e8 bf f5 ff ff       	call   0x404562
404fa3:	8b 4f 38             	mov    0x38(%edi),%ecx
404fa6:	2b c8                	sub    %eax,%ecx
404fa8:	d1 f9                	sar    $1,%ecx
404faa:	8b c1                	mov    %ecx,%eax
404fac:	99                   	cltd
404fad:	3b ea                	cmp    %edx,%ebp
404faf:	7f 26                	jg     0x404fd7
404fb1:	7c 04                	jl     0x404fb7
404fb3:	3b d8                	cmp    %eax,%ebx
404fb5:	77 20                	ja     0x404fd7
404fb7:	8b cf                	mov    %edi,%ecx
404fb9:	e8 a4 f5 ff ff       	call   0x404562
404fbe:	8b cf                	mov    %edi,%ecx
404fc0:	8b f0                	mov    %eax,%esi
404fc2:	e8 58 fc ff ff       	call   0x404c1f
404fc7:	2b f0                	sub    %eax,%esi
404fc9:	8b cf                	mov    %edi,%ecx
404fcb:	d1 fe                	sar    $1,%esi
404fcd:	03 f3                	add    %ebx,%esi
404fcf:	56                   	push   %esi
404fd0:	e8 09 fc ff ff       	call   0x404bde
404fd5:	eb 08                	jmp    0x404fdf
404fd7:	8b 1d 30 81 42 00    	mov    0x428130,%ebx
404fdd:	8b ee                	mov    %esi,%ebp
404fdf:	8b 4c 24 14          	mov    0x14(%esp),%ecx
404fe3:	55                   	push   %ebp
404fe4:	53                   	push   %ebx
404fe5:	e8 e1 d9 ff ff       	call   0x4029cb
404fea:	8b 44 24 14          	mov    0x14(%esp),%eax
404fee:	5f                   	pop    %edi
404fef:	5e                   	pop    %esi
404ff0:	5d                   	pop    %ebp
404ff1:	5b                   	pop    %ebx
404ff2:	c2 20 00             	ret    $0x20
404ff5:	55                   	push   %ebp
404ff6:	8b ec                	mov    %esp,%ebp
404ff8:	51                   	push   %ecx
404ff9:	8b d1                	mov    %ecx,%edx
404ffb:	8d 4d ff             	lea    -0x1(%ebp),%ecx
404ffe:	e8 12 00 00 00       	call   0x405015
405003:	8b 4d 08             	mov    0x8(%ebp),%ecx
405006:	50                   	push   %eax
405007:	e8 c3 ce ff ff       	call   0x401ecf
40500c:	8b 45 08             	mov    0x8(%ebp),%eax
40500f:	8b e5                	mov    %ebp,%esp
405011:	5d                   	pop    %ebp
405012:	c2 08 00             	ret    $0x8
405015:	56                   	push   %esi
405016:	52                   	push   %edx
405017:	8b f1                	mov    %ecx,%esi
405019:	e8 08 d6 ff ff       	call   0x402626
40501e:	8b c6                	mov    %esi,%eax
405020:	5e                   	pop    %esi
405021:	c3                   	ret
405022:	8b c1                	mov    %ecx,%eax
405024:	c2 0c 00             	ret    $0xc
405027:	8b 51 0c             	mov    0xc(%ecx),%edx
40502a:	8b 44 24 04          	mov    0x4(%esp),%eax
40502e:	56                   	push   %esi
40502f:	8b 74 24 10          	mov    0x10(%esp),%esi
405033:	89 02                	mov    %eax,(%edx)
405035:	8b 41 1c             	mov    0x1c(%ecx),%eax
405038:	8b 54 24 0c          	mov    0xc(%esp),%edx
40503c:	2b f2                	sub    %edx,%esi
40503e:	d1 fe                	sar    $1,%esi
405040:	89 10                	mov    %edx,(%eax)
405042:	8b 41 2c             	mov    0x2c(%ecx),%eax
405045:	89 30                	mov    %esi,(%eax)
405047:	5e                   	pop    %esi
405048:	c2 0c 00             	ret    $0xc
40504b:	8b 51 10             	mov    0x10(%ecx),%edx
40504e:	8b 44 24 04          	mov    0x4(%esp),%eax
405052:	56                   	push   %esi
405053:	8b 74 24 10          	mov    0x10(%esp),%esi
405057:	89 02                	mov    %eax,(%edx)
405059:	8b 41 20             	mov    0x20(%ecx),%eax
40505c:	8b 54 24 0c          	mov    0xc(%esp),%edx
405060:	2b f2                	sub    %edx,%esi
405062:	d1 fe                	sar    $1,%esi
405064:	89 10                	mov    %edx,(%eax)
405066:	8b 41 30             	mov    0x30(%ecx),%eax