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
405073:	75 0d                	jne    0x405082
405075:	a1 4c aa 46 00       	mov    0x46aa4c,%eax
40507a:	66 83 7c 47 02 3d    	cmpw   $0x3d,0x2(%edi,%eax,2)
405080:	74 02                	je     0x405084
405082:	33 f6                	xor    %esi,%esi
405084:	5f                   	pop    %edi
405085:	8b c6                	mov    %esi,%eax
405087:	5e                   	pop    %esi
405088:	5b                   	pop    %ebx
405089:	5d                   	pop    %ebp
40508a:	c2 04 00             	ret    $0x4
40508d:	55                   	push   %ebp
40508e:	8b ec                	mov    %esp,%ebp
405090:	81 ec 30 06 00 00    	sub    $0x630,%esp
405096:	a1 08 a0 46 00       	mov    0x46a008,%eax
40509b:	33 c5                	xor    %ebp,%eax
40509d:	89 45 fc             	mov    %eax,-0x4(%ebp)
4050a0:	8b 45 08             	mov    0x8(%ebp),%eax
4050a3:	53                   	push   %ebx
4050a4:	56                   	push   %esi
4050a5:	8b 75 10             	mov    0x10(%ebp),%esi
4050a8:	33 db                	xor    %ebx,%ebx
4050aa:	57                   	push   %edi
4050ab:	8b 7d 0c             	mov    0xc(%ebp),%edi
4050ae:	89 85 d4 fe ff ff    	mov    %eax,-0x12c(%ebp)
4050b4:	8b 45 18             	mov    0x18(%ebp),%eax
4050b7:	68 1c 01 00 00       	push   $0x11c
4050bc:	89 85 b8 fe ff ff    	mov    %eax,-0x148(%ebp)
4050c2:	8d 85 e0 fe ff ff    	lea    -0x120(%ebp),%eax
4050c8:	53                   	push   %ebx
4050c9:	50                   	push   %eax
4050ca:	89 b5 cc fe ff ff    	mov    %esi,-0x134(%ebp)
4050d0:	89 9d bc fe ff ff    	mov    %ebx,-0x144(%ebp)
4050d6:	89 9d c0 fe ff ff    	mov    %ebx,-0x140(%ebp)
4050dc:	89 9d c4 fe ff ff    	mov    %ebx,-0x13c(%ebp)
4050e2:	89 9d c8 fe ff ff    	mov    %ebx,-0x138(%ebp)
4050e8:	e8 83 a5 02 00       	call   0x42f670
4050ed:	68 e8 04 00 00       	push   $0x4e8
4050f2:	8d 85 d0 f9 ff ff    	lea    -0x630(%ebp),%eax
4050f8:	89 9d dc fe ff ff    	mov    %ebx,-0x124(%ebp)
4050fe:	53                   	push   %ebx
4050ff:	50                   	push   %eax
405100:	89 9d d0 fe ff ff    	mov    %ebx,-0x130(%ebp)
405106:	e8 65 a5 02 00       	call   0x42f670
40510b:	83 c4 18             	add    $0x18,%esp
40510e:	53                   	push   %ebx
40510f:	ff 15 ec b0 44 00    	call   *0x44b0ec
405115:	50                   	push   %eax
405116:	e8 d5 b2 03 00       	call   0x4403f0
40511b:	53                   	push   %ebx
40511c:	6a 03                	push   $0x3
40511e:	e8 7f b4 03 00       	call   0x4405a2
405123:	8d 85 b0 fe ff ff    	lea    -0x150(%ebp),%eax
405129:	50                   	push   %eax
40512a:	8d 85 ac fe ff ff    	lea    -0x154(%ebp),%eax
405130:	50                   	push   %eax
405131:	56                   	push   %esi
405132:	e8 d2 c0 ff ff       	call   0x401209
405137:	8b f0                	mov    %eax,%esi
405139:	85 f6                	test   %esi,%esi
40513b:	79 14                	jns    0x405151
40513d:	68 f4 b8 44 00       	push   $0x44b8f4
405142:	56                   	push   %esi
405143:	e8 e7 af 03 00       	call   0x44012f
405148:	59                   	pop    %ecx
405149:	59                   	pop    %ecx
40514a:	8b fb                	mov    %ebx,%edi
40514c:	e9 7b 02 00 00       	jmp    0x4053cc
405151:	57                   	push   %edi
405152:	8d 85 d0 f9 ff ff    	lea    -0x630(%ebp),%eax
405158:	50                   	push   %eax
405159:	e8 74 f0 ff ff       	call   0x4041d2
40515e:	8b f0                	mov    %eax,%esi
405160:	85 f6                	test   %esi,%esi
405162:	79 07                	jns    0x40516b
405164:	68 14 b9 44 00       	push   $0x44b914
405169:	eb d7                	jmp    0x405142
40516b:	8b 45 14             	mov    0x14(%ebp),%eax
40516e:	89 85 fc f9 ff ff    	mov    %eax,-0x604(%ebp)
405174:	e8 ac 03 00 00       	call   0x405525
405179:	6a 00                	push   $0x0
40517b:	6a 00                	push   $0x0
40517d:	ff 15 b0 b3 44 00    	call   *0x44b3b0
405183:	8b f0                	mov    %eax,%esi
405185:	85 f6                	test   %esi,%esi
405187:	79 07                	jns    0x405190
405189:	68 38 b9 44 00       	push   $0x44b938
40518e:	eb b2                	jmp    0x405142
405190:	33 ff                	xor    %edi,%edi
405192:	47                   	inc    %edi
405193:	e8 15 aa 03 00       	call   0x43fbad
405198:	8b f0                	mov    %eax,%esi
40519a:	85 f6                	test   %esi,%esi
40519c:	79 12                	jns    0x4051b0
40519e:	68 54 b9 44 00       	push   $0x44b954
4051a3:	56                   	push   %esi
4051a4:	e8 86 af 03 00       	call   0x44012f
4051a9:	59                   	pop    %ecx
4051aa:	59                   	pop    %ecx
4051ab:	e9 1c 02 00 00       	jmp    0x4053cc
4051b0:	89 bd bc fe ff ff    	mov    %edi,-0x144(%ebp)
4051b6:	e8 16 bb 03 00       	call   0x440cd1
4051bb:	8b f0                	mov    %eax,%esi
4051bd:	85 f6                	test   %esi,%esi
4051bf:	79 07                	jns    0x4051c8
4051c1:	68 74 b9 44 00       	push   $0x44b974
4051c6:	eb db                	jmp    0x4051a3
4051c8:	89 bd c0 fe ff ff    	mov    %edi,-0x140(%ebp)
4051ce:	e8 e0 d7 03 00       	call   0x4429b3
4051d3:	8b f0                	mov    %eax,%esi
4051d5:	85 f6                	test   %esi,%esi
4051d7:	79 07                	jns    0x4051e0
4051d9:	68 94 b9 44 00       	push   $0x44b994
4051de:	eb c3                	jmp    0x4051a3
4051e0:	89 bd c4 fe ff ff    	mov    %edi,-0x13c(%ebp)
4051e6:	e8 50 e2 03 00       	call   0x44343b
4051eb:	8b f0                	mov    %eax,%esi
4051ed:	85 f6                	test   %esi,%esi
4051ef:	79 07                	jns    0x4051f8
4051f1:	68 b4 b9 44 00       	push   $0x44b9b4
4051f6:	eb ab                	jmp    0x4051a3
4051f8:	8d 85 e0 fe ff ff    	lea    -0x120(%ebp),%eax
4051fe:	89 bd c8 fe ff ff    	mov    %edi,-0x138(%ebp)
405204:	50                   	push   %eax
405205:	c7 85 e0 fe ff ff 1c 	movl   $0x11c,-0x120(%ebp)
40520c:	01 00 00
40520f:	ff 15 a8 b1 44 00    	call   *0x44b1a8
405215:	85 c0                	test   %eax,%eax
405217:	75 38                	jne    0x405251
405219:	ff 15 e8 b0 44 00    	call   *0x44b0e8
40521f:	0f b7 f0             	movzwl %ax,%esi
405222:	81 ce 00 00 07 80    	or     $0x80070000,%esi
405228:	85 c0                	test   %eax,%eax
40522a:	0f 4e f0             	cmovle %eax,%esi
40522d:	b8 05 40 00 80       	mov    $0x80004005,%eax
405232:	85 f6                	test   %esi,%esi
405234:	0f 49 f0             	cmovns %eax,%esi
405237:	56                   	push   %esi
405238:	68 95 00 00 00       	push   $0x95
40523d:	68 d4 b9 44 00       	push   $0x44b9d4
405242:	e8 8c e5 ff ff       	call   0x4037d3
405247:	68 e0 b9 44 00       	push   $0x44b9e0
40524c:	e9 52 ff ff ff       	jmp    0x4051a3
405251:	6a 00                	push   $0x0
405253:	8d 85 dc fe ff ff    	lea    -0x124(%ebp),%eax
405259:	50                   	push   %eax
40525a:	e8 78 e1 ff ff       	call   0x4033d7
40525f:	ff b5 dc fe ff ff    	push   -0x124(%ebp)
405265:	0f b7 45 f4          	movzwl -0xc(%ebp),%eax
405269:	50                   	push   %eax
40526a:	ff b5 ec fe ff ff    	push   -0x114(%ebp)
405270:	ff b5 e8 fe ff ff    	push   -0x118(%ebp)
405276:	ff b5 e4 fe ff ff    	push   -0x11c(%ebp)
40527c:	68 f8 b9 44 00       	push   $0x44b9f8
405281:	68 01 00 00 20       	push   $0x20000001
405286:	6a 02                	push   $0x2
405288:	e8 82 02 00 00       	call   0x40550f
40528d:	83 c4 20             	add    $0x20,%esp
405290:	39 9d dc fe ff ff    	cmp    %ebx,-0x124(%ebp)
405296:	74 11                	je     0x4052a9
405298:	ff b5 dc fe ff ff    	push   -0x124(%ebp)
40529e:	e8 4c 02 04 00       	call   0x4454ef
4052a3:	21 9d dc fe ff ff    	and    %ebx,-0x124(%ebp)
4052a9:	8d 85 d0 f9 ff ff    	lea    -0x630(%ebp),%eax
4052af:	50                   	push   %eax
4052b0:	e8 82 20 01 00       	call   0x417337
4052b5:	8b f0                	mov    %eax,%esi
4052b7:	85 f6                	test   %esi,%esi
4052b9:	79 0a                	jns    0x4052c5
4052bb:	68 04 ba 44 00       	push   $0x44ba04
4052c0:	e9 de fe ff ff       	jmp    0x4051a3
4052c5:	8b 85 60 fe ff ff    	mov    -0x1a0(%ebp),%eax
4052cb:	83 e8 00             	sub    $0x0,%eax
4052ce:	0f 84 c2 00 00 00    	je     0x405396
4052d4:	83 e8 01             	sub    $0x1,%eax