404c4e:	89 75 e8             	mov    %esi,-0x18(%ebp)
404c51:	e8 1a aa 02 00       	call   0x42f670
404c56:	33 c0                	xor    %eax,%eax
404c58:	89 75 ec             	mov    %esi,-0x14(%ebp)
404c5b:	8d 7d d4             	lea    -0x2c(%ebp),%edi
404c5e:	89 75 f0             	mov    %esi,-0x10(%ebp)
404c61:	ab                   	stos   %eax,%es:(%edi)
404c62:	83 c4 0c             	add    $0xc,%esp
404c65:	8b de                	mov    %esi,%ebx
404c67:	89 5d fc             	mov    %ebx,-0x4(%ebp)
404c6a:	ab                   	stos   %eax,%es:(%edi)
404c6b:	56                   	push   %esi
404c6c:	ab                   	stos   %eax,%es:(%edi)
404c6d:	ab                   	stos   %eax,%es:(%edi)
404c6e:	8d 45 f4             	lea    -0xc(%ebp),%eax
404c71:	50                   	push   %eax
404c72:	e8 60 e7 ff ff       	call   0x4033d7
404c77:	8b f0                	mov    %eax,%esi
404c79:	85 f6                	test   %esi,%esi
404c7b:	79 12                	jns    0x404c8f
404c7d:	68 6c bb 44 00       	push   $0x44bb6c
404c82:	56                   	push   %esi
404c83:	e8 a7 b4 03 00       	call   0x44012f
404c88:	59                   	pop    %ecx
404c89:	59                   	pop    %ecx
404c8a:	e9 9c 01 00 00       	jmp    0x404e2b
404c8f:	e8 5e 4a 01 00       	call   0x4196f2
404c94:	8b 5d 0c             	mov    0xc(%ebp),%ebx
404c97:	85 c0                	test   %eax,%eax
404c99:	74 07                	je     0x404ca2
404c9b:	8b 45 f4             	mov    -0xc(%ebp),%eax
404c9e:	8b f8                	mov    %eax,%edi
404ca0:	eb 35                	jmp    0x404cd7
404ca2:	8d 45 e4             	lea    -0x1c(%ebp),%eax
404ca5:	50                   	push   %eax
404ca6:	8d 43 48             	lea    0x48(%ebx),%eax
404ca9:	50                   	push   %eax
404caa:	8d 83 bc 00 00 00    	lea    0xbc(%ebx),%eax
404cb0:	50                   	push   %eax
404cb1:	e8 42 4a 01 00       	call   0x4196f8
404cb6:	8b f0                	mov    %eax,%esi
404cb8:	85 f6                	test   %esi,%esi
404cba:	79 15                	jns    0x404cd1
404cbc:	68 94 bb 44 00       	push   $0x44bb94
404cc1:	56                   	push   %esi
404cc2:	e8 68 b4 03 00       	call   0x44012f
404cc7:	8b 5d fc             	mov    -0x4(%ebp),%ebx
404cca:	59                   	pop    %ecx
404ccb:	59                   	pop    %ecx
404ccc:	e9 5a 01 00 00       	jmp    0x404e2b
404cd1:	8b 7d e4             	mov    -0x1c(%ebp),%edi
404cd4:	8b 45 f4             	mov    -0xc(%ebp),%eax
404cd7:	50                   	push   %eax
404cd8:	68 40 b8 44 00       	push   $0x44b840
404cdd:	8d 45 f8             	lea    -0x8(%ebp),%eax
404ce0:	68 b4 bb 44 00       	push   $0x44bbb4
404ce5:	50                   	push   %eax
404ce6:	e8 35 d2 ff ff       	call   0x401f20
404ceb:	8b f0                	mov    %eax,%esi
404ced:	83 c4 10             	add    $0x10,%esp
404cf0:	85 f6                	test   %esi,%esi
404cf2:	79 07                	jns    0x404cfb
404cf4:	68 cc bb 44 00       	push   $0x44bbcc
404cf9:	eb c6                	jmp    0x404cc1
404cfb:	8d 45 f8             	lea    -0x8(%ebp),%eax
404cfe:	50                   	push   %eax
404cff:	8d 45 ec             	lea    -0x14(%ebp),%eax
404d02:	50                   	push   %eax
404d03:	ff 73 48             	push   0x48(%ebx)
404d06:	e8 4e 1b 01 00       	call   0x416859
404d0b:	8b f0                	mov    %eax,%esi
404d0d:	85 f6                	test   %esi,%esi
404d0f:	79 18                	jns    0x404d29
404d11:	68 60 b8 44 00       	push   $0x44b860
404d16:	68 04 bc 44 00       	push   $0x44bc04
404d1b:	56                   	push   %esi
404d1c:	e8 0e b4 03 00       	call   0x44012f
404d21:	8b 5d fc             	mov    -0x4(%ebp),%ebx
404d24:	e9 ff 00 00 00       	jmp    0x404e28
404d29:	6a 00                	push   $0x0
404d2b:	8d 45 f8             	lea    -0x8(%ebp),%eax
404d2e:	50                   	push   %eax
404d2f:	8d 45 f0             	lea    -0x10(%ebp),%eax
404d32:	50                   	push   %eax
404d33:	57                   	push   %edi
404d34:	e8 dc 1b 01 00       	call   0x416915
404d39:	8b f0                	mov    %eax,%esi
404d3b:	85 f6                	test   %esi,%esi
404d3d:	79 07                	jns    0x404d46
404d3f:	68 94 b8 44 00       	push   $0x44b894
404d44:	eb d0                	jmp    0x404d16
404d46:	ff 75 08             	push   0x8(%ebp)
404d49:	8d 45 f8             	lea    -0x8(%ebp),%eax
404d4c:	ff 75 f8             	push   -0x8(%ebp)
404d4f:	68 1c bc 44 00       	push   $0x44bc1c
404d54:	50                   	push   %eax
404d55:	e8 08 d2 ff ff       	call   0x401f62
404d5a:	8b f0                	mov    %eax,%esi
404d5c:	83 c4 10             	add    $0x10,%esp
404d5f:	85 f6                	test   %esi,%esi
404d61:	79 0a                	jns    0x404d6d
404d63:	68 2c bc 44 00       	push   $0x44bc2c
404d68:	e9 54 ff ff ff       	jmp    0x404cc1
404d6d:	ff 75 f8             	push   -0x8(%ebp)
404d70:	8d 45 e8             	lea    -0x18(%ebp),%eax
404d73:	57                   	push   %edi
404d74:	68 54 bc 44 00       	push   $0x44bc54
404d79:	50                   	push   %eax
404d7a:	e8 e3 d1 ff ff       	call   0x401f62
404d7f:	8b f0                	mov    %eax,%esi
404d81:	83 c4 10             	add    $0x10,%esp
404d84:	85 f6                	test   %esi,%esi
404d86:	79 0a                	jns    0x404d92
404d88:	68 68 bc 44 00       	push   $0x44bc68
404d8d:	e9 2f ff ff ff       	jmp    0x404cc1
404d92:	66 8b 43 2c          	mov    0x2c(%ebx),%ax
404d96:	33 f6                	xor    %esi,%esi
404d98:	66 89 45 c0          	mov    %ax,-0x40(%ebp)
404d9c:	8d 45 d4             	lea    -0x2c(%ebp),%eax
404d9f:	50                   	push   %eax
404da0:	8d 45 90             	lea    -0x70(%ebp),%eax
404da3:	c7 45 90 44 00 00 00 	movl   $0x44,-0x70(%ebp)
404daa:	50                   	push   %eax
404dab:	56                   	push   %esi
404dac:	56                   	push   %esi
404dad:	56                   	push   %esi
404dae:	6a 01                	push   $0x1
404db0:	56                   	push   %esi
404db1:	56                   	push   %esi
404db2:	ff 75 e8             	push   -0x18(%ebp)
404db5:	57                   	push   %edi
404db6:	ff 15 a4 b1 44 00    	call   *0x44b1a4
404dbc:	85 c0                	test   %eax,%eax
404dbe:	75 3b                	jne    0x404dfb
404dc0:	ff 15 e8 b0 44 00    	call   *0x44b0e8
404dc6:	0f b7 f0             	movzwl %ax,%esi
404dc9:	81 ce 00 00 07 80    	or     $0x80070000,%esi
404dcf:	85 c0                	test   %eax,%eax
404dd1:	0f 4e f0             	cmovle %eax,%esi
404dd4:	b8 05 40 00 80       	mov    $0x80004005,%eax
404dd9:	85 f6                	test   %esi,%esi
404ddb:	0f 49 f0             	cmovns %eax,%esi
404dde:	56                   	push   %esi
404ddf:	68 ce 01 00 00       	push   $0x1ce
404de4:	68 d4 b9 44 00       	push   $0x44b9d4
404de9:	e8 e5 e9 ff ff       	call   0x4037d3
404dee:	ff 75 e8             	push   -0x18(%ebp)
404df1:	68 90 bc 44 00       	push   $0x44bc90
404df6:	e9 20 ff ff ff       	jmp    0x404d1b
404dfb:	8b 45 d4             	mov    -0x2c(%ebp),%eax
404dfe:	89 45 fc             	mov    %eax,-0x4(%ebp)
404e01:	8d 83 f8 00 00 00    	lea    0xf8(%ebx),%eax
404e07:	8b 5d fc             	mov    -0x4(%ebp),%ebx
404e0a:	50                   	push   %eax
404e0b:	6a ff                	push   $0xffffffff
404e0d:	53                   	push   %ebx
404e0e:	89 75 d4             	mov    %esi,-0x2c(%ebp)
404e11:	e8 01 bb 03 00       	call   0x440917
404e16:	8b f0                	mov    %eax,%esi
404e18:	85 f6                	test   %esi,%esi
404e1a:	79 0f                	jns    0x404e2b
404e1c:	57                   	push   %edi
404e1d:	68 bc bc 44 00       	push   $0x44bcbc
404e22:	56                   	push   %esi
404e23:	e8 07 b3 03 00       	call   0x44012f
404e28:	83 c4 0c             	add    $0xc,%esp
404e2b:	83 7d d8 00          	cmpl   $0x0,-0x28(%ebp)
404e2f:	8b 3d d4 b0 44 00    	mov    0x44b0d4,%edi
404e35:	74 09                	je     0x404e40
404e37:	ff 75 d8             	push   -0x28(%ebp)
404e3a:	ff d7                	call   *%edi
404e3c:	83 65 d8 00          	andl   $0x0,-0x28(%ebp)
404e40:	83 7d f0 ff          	cmpl   $0xffffffff,-0x10(%ebp)
404e44:	74 09                	je     0x404e4f
404e46:	ff 75 f0             	push   -0x10(%ebp)
404e49:	ff d7                	call   *%edi
404e4b:	83 4d f0 ff          	orl    $0xffffffff,-0x10(%ebp)
404e4f:	83 7d ec ff          	cmpl   $0xffffffff,-0x14(%ebp)
404e53:	74 09                	je     0x404e5e
404e55:	ff 75 ec             	push   -0x14(%ebp)
404e58:	ff d7                	call   *%edi
404e5a:	83 4d ec ff          	orl    $0xffffffff,-0x14(%ebp)
404e5e:	85 db                	test   %ebx,%ebx
404e60:	74 03                	je     0x404e65
404e62:	53                   	push   %ebx
404e63:	ff d7                	call   *%edi
404e65:	ff 75 e8             	push   -0x18(%ebp)
404e68:	e8 26 d9 ff ff       	call   0x402793
404e6d:	ff 75 f8             	push   -0x8(%ebp)
404e70:	e8 1e d9 ff ff       	call   0x402793
404e75:	83 7d e4 00          	cmpl   $0x0,-0x1c(%ebp)
404e79:	74 08                	je     0x404e83
404e7b:	ff 75 e4             	push   -0x1c(%ebp)
404e7e:	e8 6c 06 04 00       	call   0x4454ef
404e83:	83 7d f4 00          	cmpl   $0x0,-0xc(%ebp)
404e87:	74 08                	je     0x404e91
404e89:	ff 75 f4             	push   -0xc(%ebp)
404e8c:	e8 5e 06 04 00       	call   0x4454ef
404e91:	5f                   	pop    %edi
404e92:	8b c6                	mov    %esi,%eax
404e94:	5e                   	pop    %esi
404e95:	5b                   	pop    %ebx
404e96:	8b e5                	mov    %ebp,%esp
404e98:	5d                   	pop    %ebp
404e99:	c2 08 00             	ret    $0x8
404e9c:	55                   	push   %ebp
404e9d:	8b ec                	mov    %esp,%ebp
404e9f:	56                   	push   %esi
404ea0:	8b 75 08             	mov    0x8(%ebp),%esi
404ea3:	8b 86 e0 04 00 00    	mov    0x4e0(%esi),%eax
404ea9:	85 c0                	test   %eax,%eax
404eab:	74 06                	je     0x404eb3
404ead:	50                   	push   %eax
404eae:	e8 ad c2 ff ff       	call   0x401160
404eb3:	8b 86 d8 04 00 00    	mov    0x4d8(%esi),%eax
404eb9:	85 c0                	test   %eax,%eax
404ebb:	74 06                	je     0x404ec3
404ebd:	50                   	push   %eax
404ebe:	e8 2c 06 04 00       	call   0x4454ef
404ec3:	8d 86 b8 04 00 00    	lea    0x4b8(%esi),%eax
404ec9:	50                   	push   %eax
404eca:	e8 5c fc 00 00       	call   0x414b2b
404ecf:	8d 86 a0 04 00 00    	lea    0x4a0(%esi),%eax
404ed5:	50                   	push   %eax
404ed6:	e8 50 fc 00 00       	call   0x414b2b
404edb:	8b 86 9c 04 00 00    	mov    0x49c(%esi),%eax
404ee1:	85 c0                	test   %eax,%eax
404ee3:	74 06                	je     0x404eeb
404ee5:	50                   	push   %eax
404ee6:	e8 04 06 04 00       	call   0x4454ef
404eeb:	8b 86 e4 03 00 00    	mov    0x3e4(%esi),%eax
404ef1:	85 c0                	test   %eax,%eax
404ef3:	74 0e                	je     0x404f03
404ef5:	50                   	push   %eax
404ef6:	ff 15 d4 b0 44 00    	call   *0x44b0d4
404efc:	83 a6 e4 03 00 00 00 	andl   $0x0,0x3e4(%esi)
404f03:	8d 86 d0 00 00 00    	lea    0xd0(%esi),%eax
404f09:	50                   	push   %eax
404f0a:	ff 15 8c b1 44 00    	call   *0x44b18c
404f10:	8d 86 b8 00 00 00    	lea    0xb8(%esi),%eax
404f16:	50                   	push   %eax
404f17:	e8 83 88 00 00       	call   0x40d79f
404f1c:	8d 86 d8 03 00 00    	lea    0x3d8(%esi),%eax
404f22:	50                   	push   %eax
404f23:	e8 d2 6f 00 00       	call   0x40befa
404f28:	8d 86 f0 02 00 00    	lea    0x2f0(%esi),%eax
404f2e:	50                   	push   %eax
404f2f:	e8 66 98 00 00       	call   0x40e79a
404f34:	8d 86 88 00 00 00    	lea    0x88(%esi),%eax
404f3a:	50                   	push   %eax
404f3b:	e8 eb 37 00 00       	call   0x40872b
404f40:	8d 86 b0 00 00 00    	lea    0xb0(%esi),%eax
404f46:	50                   	push   %eax
404f47:	e8 eb 60 00 00       	call   0x40b037
404f4c:	8d 86 00 01 00 00    	lea    0x100(%esi),%eax
404f52:	50                   	push   %eax
404f53:	e8 ac b7 00 00       	call   0x410704
404f58:	8d 86 b8 02 00 00    	lea    0x2b8(%esi),%eax
404f5e:	50                   	push   %eax
404f5f:	e8 cf 81 00 00       	call   0x40d133
404f64:	8d 86 c0 02 00 00    	lea    0x2c0(%esi),%eax
404f6a:	50                   	push   %eax
404f6b:	e8 d7 96 00 00       	call   0x40e647
404f70:	8d 86 b0 02 00 00    	lea    0x2b0(%esi),%eax
404f76:	50                   	push   %eax
404f77:	e8 75 79 00 00       	call   0x40c8f1
404f7c:	8d 46 48             	lea    0x48(%esi),%eax
404f7f:	50                   	push   %eax
404f80:	e8 84 6b 00 00       	call   0x40bb09
404f85:	8d 86 a8 02 00 00    	lea    0x2a8(%esi),%eax
404f8b:	50                   	push   %eax
404f8c:	e8 33 77 00 00       	call   0x40c6c4
404f91:	83 7e 40 00          	cmpl   $0x0,0x40(%esi)
404f95:	74 08                	je     0x404f9f
404f97:	ff 76 40             	push   0x40(%esi)
404f9a:	e8 50 05 04 00       	call   0x4454ef
404f9f:	83 7e 28 00          	cmpl   $0x0,0x28(%esi)
404fa3:	74 08                	je     0x404fad
404fa5:	ff 76 28             	push   0x28(%esi)
404fa8:	e8 42 05 04 00       	call   0x4454ef
404fad:	8b 86 08 04 00 00    	mov    0x408(%esi),%eax
404fb3:	85 c0                	test   %eax,%eax
404fb5:	74 06                	je     0x404fbd
404fb7:	50                   	push   %eax
404fb8:	e8 32 05 04 00       	call   0x4454ef
404fbd:	8b 86 04 04 00 00    	mov    0x404(%esi),%eax
404fc3:	85 c0                	test   %eax,%eax
404fc5:	74 06                	je     0x404fcd
404fc7:	50                   	push   %eax
404fc8:	e8 22 05 04 00       	call   0x4454ef
404fcd:	8b 86 00 04 00 00    	mov    0x400(%esi),%eax
404fd3:	85 c0                	test   %eax,%eax
404fd5:	74 06                	je     0x404fdd
404fd7:	50                   	push   %eax
404fd8:	e8 12 05 04 00       	call   0x4454ef
404fdd:	8b 86 f8 03 00 00    	mov    0x3f8(%esi),%eax
404fe3:	85 c0                	test   %eax,%eax
404fe5:	74 06                	je     0x404fed
404fe7:	50                   	push   %eax
404fe8:	e8 02 05 04 00       	call   0x4454ef
404fed:	8b 86 98 04 00 00    	mov    0x498(%esi),%eax
404ff3:	83 f8 ff             	cmp    $0xffffffff,%eax
404ff6:	74 07                	je     0x404fff
404ff8:	50                   	push   %eax
404ff9:	ff 15 a0 b1 44 00    	call   *0x44b1a0
404fff:	56                   	push   %esi
405000:	ff 15 8c b1 44 00    	call   *0x44b18c
405006:	68 e8 04 00 00       	push   $0x4e8
40500b:	6a 00                	push   $0x0
40500d:	56                   	push   %esi
40500e:	e8 5d a6 02 00       	call   0x42f670
405013:	83 c4 0c             	add    $0xc,%esp
405016:	5e                   	pop    %esi
405017:	5d                   	pop    %ebp
405018:	c2 04 00             	ret    $0x4
40501b:	55                   	push   %ebp
40501c:	8b ec                	mov    %esp,%ebp
40501e:	a1 50 aa 46 00       	mov    0x46aa50,%eax
405023:	53                   	push   %ebx
405024:	56                   	push   %esi
405025:	33 f6                	xor    %esi,%esi
405027:	bb 40 b8 44 00       	mov    $0x44b840,%ebx
40502c:	46                   	inc    %esi
40502d:	57                   	push   %edi
40502e:	a8 01                	test   $0x1,%al
405030:	75 15                	jne    0x405047
405032:	0b c6                	or     %esi,%eax
405034:	53                   	push   %ebx
405035:	a3 50 aa 46 00       	mov    %eax,0x46aa50
40503a:	ff 15 f8 b0 44 00    	call   *0x44b0f8
405040:	a3 4c aa 46 00       	mov    %eax,0x46aa4c
405045:	eb 05                	jmp    0x40504c
405047:	a1 4c aa 46 00       	mov    0x46aa4c,%eax
40504c:	8b 7d 08             	mov    0x8(%ebp),%edi
40504f:	85 ff                	test   %edi,%edi
405051:	74 2f                	je     0x405082
405053:	0f b7 0f             	movzwl (%edi),%ecx
405056:	83 f9 2d             	cmp    $0x2d,%ecx
405059:	74 05                	je     0x405060
40505b:	83 f9 2f             	cmp    $0x2f,%ecx
40505e:	75 22                	jne    0x405082
405060:	50                   	push   %eax
405061:	53                   	push   %ebx
405062:	50                   	push   %eax
405063:	8d 47 02             	lea    0x2(%edi),%eax
405066:	50                   	push   %eax
405067:	56                   	push   %esi
405068:	6a 7f                	push   $0x7f
40506a:	ff 15 28 b1 44 00    	call   *0x44b128
405070:	83 f8 02             	cmp    $0x2,%eax