403da8:	57                   	push   %edi
403da9:	ff 15 4c 82 40 00    	call   *0x40824c
403daf:	33 c0                	xor    %eax,%eax
403db1:	40                   	inc    %eax
403db2:	e9 0c 04 00 00       	jmp    0x4041c3
403db7:	81 fb 11 01 00 00    	cmp    $0x111,%ebx
403dbd:	0f 85 9d 00 00 00    	jne    0x403e60
403dc3:	0f b7 74 24 2c       	movzwl 0x2c(%esp),%esi
403dc8:	56                   	push   %esi
403dc9:	57                   	push   %edi
403dca:	ff 15 d0 81 40 00    	call   *0x4081d0
403dd0:	8b f8                	mov    %eax,%edi
403dd2:	3b fd                	cmp    %ebp,%edi
403dd4:	74 1d                	je     0x403df3
403dd6:	55                   	push   %ebp
403dd7:	55                   	push   %ebp
403dd8:	68 f3 00 00 00       	push   $0xf3
403ddd:	57                   	push   %edi
403dde:	ff 15 00 82 40 00    	call   *0x408200
403de4:	57                   	push   %edi
403de5:	ff 15 90 81 40 00    	call   *0x408190
403deb:	85 c0                	test   %eax,%eax
403ded:	0f 84 ce 03 00 00    	je     0x4041c1
403df3:	83 fe 01             	cmp    $0x1,%esi
403df6:	75 03                	jne    0x403dfb
403df8:	56                   	push   %esi
403df9:	eb 2e                	jmp    0x403e29
403dfb:	83 fe 03             	cmp    $0x3,%esi
403dfe:	75 0c                	jne    0x403e0c
403e00:	39 2d f8 a1 40 00    	cmp    %ebp,0x40a1f8
403e06:	7e 3f                	jle    0x403e47
403e08:	6a ff                	push   $0xffffffff
403e0a:	eb 1d                	jmp    0x403e29
403e0c:	6a 02                	push   $0x2
403e0e:	5f                   	pop    %edi
403e0f:	3b f7                	cmp    %edi,%esi
403e11:	75 34                	jne    0x403e47
403e13:	39 2d cc f4 42 00    	cmp    %ebp,0x42f4cc
403e19:	74 15                	je     0x403e30
403e1b:	57                   	push   %edi
403e1c:	e8 ea d5 ff ff       	call   0x40140b
403e21:	89 3d 68 9c 42 00    	mov    %edi,0x429c68
403e27:	6a 78                	push   $0x78
403e29:	e8 9f 03 00 00       	call   0x4041cd
403e2e:	eb 30                	jmp    0x403e60
403e30:	6a 03                	push   $0x3
403e32:	e8 d4 d5 ff ff       	call   0x40140b
403e37:	85 c0                	test   %eax,%eax
403e39:	75 25                	jne    0x403e60
403e3b:	c7 05 68 9c 42 00 01 	movl   $0x1,0x429c68
403e42:	00 00 00
403e45:	eb e0                	jmp    0x403e27
403e47:	ff 74 24 30          	push   0x30(%esp)
403e4b:	ff 74 24 30          	push   0x30(%esp)
403e4f:	68 11 01 00 00       	push   $0x111
403e54:	ff 35 f8 eb 42 00    	push   0x42ebf8
403e5a:	ff 15 00 82 40 00    	call   *0x408200
403e60:	ff 74 24 30          	push   0x30(%esp)
403e64:	ff 74 24 30          	push   0x30(%esp)
403e68:	53                   	push   %ebx
403e69:	e8 ed 03 00 00       	call   0x40425b
403e6e:	e9 50 03 00 00       	jmp    0x4041c3
403e73:	8b 44 24 2c          	mov    0x2c(%esp),%eax
403e77:	8b 7c 24 24          	mov    0x24(%esp),%edi
403e7b:	3b d9                	cmp    %ecx,%ebx
403e7d:	a3 80 a8 42 00       	mov    %eax,0x42a880
403e82:	75 4d                	jne    0x403ed1
403e84:	8b 35 d0 81 40 00    	mov    0x4081d0,%esi
403e8a:	6a 01                	push   $0x1
403e8c:	57                   	push   %edi
403e8d:	89 3d 28 f4 42 00    	mov    %edi,0x42f428
403e93:	ff d6                	call   *%esi
403e95:	6a 02                	push   $0x2
403e97:	57                   	push   %edi
403e98:	a3 94 a8 42 00       	mov    %eax,0x42a894
403e9d:	ff d6                	call   *%esi
403e9f:	6a ff                	push   $0xffffffff
403ea1:	6a 1c                	push   $0x1c
403ea3:	57                   	push   %edi
403ea4:	a3 60 98 42 00       	mov    %eax,0x429860
403ea9:	e8 46 03 00 00       	call   0x4041f4
403eae:	ff 35 08 ec 42 00    	push   0x42ec08
403eb4:	6a f2                	push   $0xfffffff2
403eb6:	57                   	push   %edi
403eb7:	ff 15 88 81 40 00    	call   *0x408188
403ebd:	6a 04                	push   $0x4
403ebf:	e8 47 d5 ff ff       	call   0x40140b
403ec4:	a3 ec eb 42 00       	mov    %eax,0x42ebec
403ec9:	33 c0                	xor    %eax,%eax
403ecb:	40                   	inc    %eax
403ecc:	a3 80 a8 42 00       	mov    %eax,0x42a880
403ed1:	8b 0d f8 a1 40 00    	mov    0x40a1f8,%ecx
403ed7:	33 ed                	xor    %ebp,%ebp
403ed9:	8b f1                	mov    %ecx,%esi
403edb:	c1 e6 06             	shl    $0x6,%esi
403ede:	03 35 60 f4 42 00    	add    0x42f460,%esi
403ee4:	3b cd                	cmp    %ebp,%ecx
403ee6:	7c 3e                	jl     0x403f26
403ee8:	83 f8 01             	cmp    $0x1,%eax
403eeb:	75 31                	jne    0x403f1e
403eed:	55                   	push   %ebp
403eee:	ff 76 10             	push   0x10(%esi)
403ef1:	e8 93 d4 ff ff       	call   0x401389
403ef6:	85 c0                	test   %eax,%eax
403ef8:	74 24                	je     0x403f1e
403efa:	6a 01                	push   $0x1
403efc:	55                   	push   %ebp
403efd:	68 0f 04 00 00       	push   $0x40f
403f02:	ff 35 f8 eb 42 00    	push   0x42ebf8
403f08:	ff 15 00 82 40 00    	call   *0x408200
403f0e:	33 c0                	xor    %eax,%eax
403f10:	39 2d ec eb 42 00    	cmp    %ebp,0x42ebec
403f16:	0f 94 c0             	sete   %al
403f19:	e9 a5 02 00 00       	jmp    0x4041c3
403f1e:	39 2e                	cmp    %ebp,(%esi)
403f20:	0f 84 9b 02 00 00    	je     0x4041c1
403f26:	68 0b 04 00 00       	push   $0x40b
403f2b:	e8 10 03 00 00       	call   0x404240
403f30:	a1 80 a8 42 00       	mov    0x42a880,%eax
403f35:	01 05 f8 a1 40 00    	add    %eax,0x40a1f8
403f3b:	c1 e0 06             	shl    $0x6,%eax
403f3e:	03 f0                	add    %eax,%esi
403f40:	a1 f8 a1 40 00       	mov    0x40a1f8,%eax
403f45:	3b 05 64 f4 42 00    	cmp    0x42f464,%eax
403f4b:	75 07                	jne    0x403f54
403f4d:	6a 01                	push   $0x1
403f4f:	e8 b7 d4 ff ff       	call   0x40140b
403f54:	39 2d ec eb 42 00    	cmp    %ebp,0x42ebec
403f5a:	0f 85 1f 02 00 00    	jne    0x40417f
403f60:	a1 64 f4 42 00       	mov    0x42f464,%eax
403f65:	39 05 f8 a1 40 00    	cmp    %eax,0x40a1f8
403f6b:	0f 83 0e 02 00 00    	jae    0x40417f
403f71:	ff 76 24             	push   0x24(%esi)
403f74:	8b 5e 14             	mov    0x14(%esi),%ebx
403f77:	68 00 78 43 00       	push   $0x437800
403f7c:	e8 07 22 00 00       	call   0x406188
403f81:	ff 76 20             	push   0x20(%esi)
403f84:	68 19 fc ff ff       	push   $0xfffffc19
403f89:	57                   	push   %edi
403f8a:	e8 65 02 00 00       	call   0x4041f4
403f8f:	ff 76 1c             	push   0x1c(%esi)
403f92:	68 1b fc ff ff       	push   $0xfffffc1b
403f97:	57                   	push   %edi
403f98:	e8 57 02 00 00       	call   0x4041f4
403f9d:	ff 76 28             	push   0x28(%esi)
403fa0:	68 1a fc ff ff       	push   $0xfffffc1a
403fa5:	57                   	push   %edi
403fa6:	e8 49 02 00 00       	call   0x4041f4
403fab:	6a 03                	push   $0x3
403fad:	57                   	push   %edi
403fae:	ff 15 d0 81 40 00    	call   *0x4081d0
403fb4:	39 2d cc f4 42 00    	cmp    %ebp,0x42f4cc
403fba:	89 44 24 2c          	mov    %eax,0x2c(%esp)
403fbe:	74 08                	je     0x403fc8
403fc0:	66 81 e3 fd fe       	and    $0xfefd,%bx
403fc5:	83 cb 04             	or     $0x4,%ebx
403fc8:	8b cb                	mov    %ebx,%ecx
403fca:	83 e1 08             	and    $0x8,%ecx
403fcd:	51                   	push   %ecx
403fce:	50                   	push   %eax
403fcf:	ff 15 48 82 40 00    	call   *0x408248
403fd5:	8b c3                	mov    %ebx,%eax
403fd7:	25 00 01 00 00       	and    $0x100,%eax
403fdc:	50                   	push   %eax
403fdd:	ff 74 24 30          	push   0x30(%esp)
403fe1:	ff 15 f8 81 40 00    	call   *0x4081f8
403fe7:	8b c3                	mov    %ebx,%eax
403fe9:	83 e0 02             	and    $0x2,%eax
403fec:	50                   	push   %eax
403fed:	e8 24 02 00 00       	call   0x404216
403ff2:	83 e3 04             	and    $0x4,%ebx
403ff5:	53                   	push   %ebx
403ff6:	ff 35 60 98 42 00    	push   0x429860
403ffc:	ff 15 f8 81 40 00    	call   *0x4081f8
404002:	3b dd                	cmp    %ebp,%ebx
404004:	74 03                	je     0x404009
404006:	55                   	push   %ebp
404007:	eb 02                	jmp    0x40400b
404009:	6a 01                	push   $0x1
40400b:	68 60 f0 00 00       	push   $0xf060
404010:	55                   	push   %ebp
404011:	57                   	push   %edi
404012:	ff 15 84 81 40 00    	call   *0x408184
404018:	50                   	push   %eax
404019:	ff 15 8c 81 40 00    	call   *0x40818c
40401f:	8b 1d 00 82 40 00    	mov    0x408200,%ebx
404025:	6a 01                	push   $0x1
404027:	55                   	push   %ebp
404028:	68 f4 00 00 00       	push   $0xf4
40402d:	ff 74 24 38          	push   0x38(%esp)
404031:	ff d3                	call   *%ebx
404033:	39 2d cc f4 42 00    	cmp    %ebp,0x42f4cc
404039:	74 13                	je     0x40404e
40403b:	55                   	push   %ebp
40403c:	6a 02                	push   $0x2
40403e:	68 01 04 00 00       	push   $0x401
404043:	57                   	push   %edi
404044:	ff d3                	call   *%ebx
404046:	ff 35 60 98 42 00    	push   0x429860
40404c:	eb 06                	jmp    0x404054
40404e:	ff 35 94 a8 42 00    	push   0x42a894
404054:	e8 d0 01 00 00       	call   0x404229
404059:	e8 a3 fc ff ff       	call   0x403d01
40405e:	bb 98 a8 42 00       	mov    $0x42a898,%ebx
404063:	50                   	push   %eax
404064:	53                   	push   %ebx
404065:	e8 fc 20 00 00       	call   0x406166
40406a:	ff 76 18             	push   0x18(%esi)
40406d:	53                   	push   %ebx
40406e:	e8 09 21 00 00       	call   0x40617c
404073:	03 c3                	add    %ebx,%eax
404075:	50                   	push   %eax
404076:	e8 0d 21 00 00       	call   0x406188
40407b:	53                   	push   %ebx
40407c:	57                   	push   %edi
40407d:	ff 15 40 82 40 00    	call   *0x408240
404083:	55                   	push   %ebp
404084:	ff 76 08             	push   0x8(%esi)
404087:	e8 fd d2 ff ff       	call   0x401389
40408c:	85 c0                	test   %eax,%eax
40408e:	0f 85 9c fe ff ff    	jne    0x403f30
404094:	39 2e                	cmp    %ebp,(%esi)
404096:	0f 84 94 fe ff ff    	je     0x403f30
40409c:	83 7e 04 05          	cmpl   $0x5,0x4(%esi)
4040a0:	75 1d                	jne    0x4040bf
4040a2:	39 2d cc f4 42 00    	cmp    %ebp,0x42f4cc
4040a8:	0f 85 13 01 00 00    	jne    0x4041c1
4040ae:	39 2d c0 f4 42 00    	cmp    %ebp,0x42f4c0
4040b4:	0f 85 76 fe ff ff    	jne    0x403f30
4040ba:	e9 02 01 00 00       	jmp    0x4041c1
4040bf:	ff 35 f8 eb 42 00    	push   0x42ebf8
4040c5:	ff 15 70 82 40 00    	call   *0x408270
4040cb:	89 35 70 a0 42 00    	mov    %esi,0x42a070
4040d1:	39 2e                	cmp    %ebp,(%esi)
4040d3:	0f 8e c5 00 00 00    	jle    0x40419e
4040d9:	8b 46 04             	mov    0x4(%esi),%eax
4040dc:	56                   	push   %esi
4040dd:	ff 34 85 fc a1 40 00 	push   0x40a1fc(,%eax,4)
4040e4:	66 8b 06             	mov    (%esi),%ax
4040e7:	66 03 05 00 ec 42 00 	add    0x42ec00,%ax
4040ee:	57                   	push   %edi
4040ef:	0f b7 c0             	movzwl %ax,%eax
4040f2:	50                   	push   %eax
4040f3:	ff 35 20 f4 42 00    	push   0x42f420
4040f9:	ff 15 38 82 40 00    	call   *0x408238
4040ff:	3b c5                	cmp    %ebp,%eax
404101:	a3 f8 eb 42 00       	mov    %eax,0x42ebf8
404106:	0f 84 92 00 00 00    	je     0x40419e
40410c:	ff 76 2c             	push   0x2c(%esi)
40410f:	6a 06                	push   $0x6
404111:	50                   	push   %eax
404112:	e8 dd 00 00 00       	call   0x4041f4
404117:	8d 44 24 10          	lea    0x10(%esp),%eax
40411b:	50                   	push   %eax
40411c:	68 fa 03 00 00       	push   $0x3fa
404121:	57                   	push   %edi
404122:	ff 15 d0 81 40 00    	call   *0x4081d0
404128:	50                   	push   %eax
404129:	ff 15 cc 81 40 00    	call   *0x4081cc
40412f:	8d 44 24 10          	lea    0x10(%esp),%eax
404133:	50                   	push   %eax
404134:	57                   	push   %edi
404135:	ff 15 c8 81 40 00    	call   *0x4081c8
40413b:	6a 15                	push   $0x15
40413d:	55                   	push   %ebp
40413e:	55                   	push   %ebp
40413f:	ff 74 24 20          	push   0x20(%esp)
404143:	ff 74 24 20          	push   0x20(%esp)
404147:	55                   	push   %ebp
404148:	ff 35 f8 eb 42 00    	push   0x42ebf8
40414e:	ff 15 94 81 40 00    	call   *0x408194
404154:	55                   	push   %ebp
404155:	ff 76 0c             	push   0xc(%esi)
404158:	e8 2c d2 ff ff       	call   0x401389
40415d:	39 2d ec eb 42 00    	cmp    %ebp,0x42ebec
404163:	75 5c                	jne    0x4041c1
404165:	6a 08                	push   $0x8
404167:	ff 35 f8 eb 42 00    	push   0x42ebf8
40416d:	ff 15 48 82 40 00    	call   *0x408248
404173:	68 05 04 00 00       	push   $0x405
404178:	e8 c3 00 00 00       	call   0x404240
40417d:	eb 1f                	jmp    0x40419e
40417f:	ff 35 f8 eb 42 00    	push   0x42ebf8
404185:	ff 15 70 82 40 00    	call   *0x408270
40418b:	ff 35 68 9c 42 00    	push   0x429c68
404191:	89 2d 28 f4 42 00    	mov    %ebp,0x42f428
404197:	57                   	push   %edi
404198:	ff 15 14 82 40 00    	call   *0x408214
40419e:	39 2d 98 b8 42 00    	cmp    %ebp,0x42b898
4041a4:	75 1b                	jne    0x4041c1
4041a6:	39 2d f8 eb 42 00    	cmp    %ebp,0x42ebf8
4041ac:	74 13                	je     0x4041c1
4041ae:	6a 0a                	push   $0xa
4041b0:	57                   	push   %edi
4041b1:	ff 15 48 82 40 00    	call   *0x408248
4041b7:	c7 05 98 b8 42 00 01 	movl   $0x1,0x42b898
4041be:	00 00 00
4041c1:	33 c0                	xor    %eax,%eax
4041c3:	5f                   	pop    %edi
4041c4:	5e                   	pop    %esi
4041c5:	5d                   	pop    %ebp
4041c6:	5b                   	pop    %ebx
4041c7:	83 c4 10             	add    $0x10,%esp
4041ca:	c2 10 00             	ret    $0x10
4041cd:	83 7c 24 04 78       	cmpl   $0x78,0x4(%esp)
4041d2:	75 06                	jne    0x4041da
4041d4:	ff 05 ec eb 42 00    	incl   0x42ebec
4041da:	6a 00                	push   $0x0
4041dc:	ff 74 24 08          	push   0x8(%esp)
4041e0:	68 08 04 00 00       	push   $0x408
4041e5:	ff 35 28 f4 42 00    	push   0x42f428
4041eb:	ff 15 00 82 40 00    	call   *0x408200
4041f1:	c2 04 00             	ret    $0x4
4041f4:	ff 74 24 0c          	push   0xc(%esp)
4041f8:	6a 00                	push   $0x0
4041fa:	e8 89 1f 00 00       	call   0x406188
4041ff:	50                   	push   %eax
404200:	8b 44 24 0c          	mov    0xc(%esp),%eax
404204:	05 e8 03 00 00       	add    $0x3e8,%eax
404209:	50                   	push   %eax
40420a:	ff 74 24 0c          	push   0xc(%esp)
40420e:	e8 4d 16 00 00       	call   0x405860
404213:	c2 0c 00             	ret    $0xc
404216:	ff 74 24 04          	push   0x4(%esp)
40421a:	ff 35 94 a8 42 00    	push   0x42a894
404220:	ff 15 f8 81 40 00    	call   *0x4081f8
404226:	c2 04 00             	ret    $0x4
404229:	6a 01                	push   $0x1
40422b:	ff 74 24 08          	push   0x8(%esp)
40422f:	6a 28                	push   $0x28
404231:	ff 35 28 f4 42 00    	push   0x42f428
404237:	ff 15 00 82 40 00    	call   *0x408200
40423d:	c2 04 00             	ret    $0x4
404240:	a1 f8 eb 42 00       	mov    0x42ebf8,%eax
404245:	85 c0                	test   %eax,%eax
404247:	74 0f                	je     0x404258
404249:	6a 00                	push   $0x0
40424b:	6a 00                	push   $0x0
40424d:	ff 74 24 0c          	push   0xc(%esp)
404251:	50                   	push   %eax
404252:	ff 15 00 82 40 00    	call   *0x408200
404258:	c2 04 00             	ret    $0x4
40425b:	55                   	push   %ebp
40425c:	8b ec                	mov    %esp,%ebp
40425e:	83 ec 0c             	sub    $0xc,%esp
404261:	8b 45 08             	mov    0x8(%ebp),%eax
404264:	56                   	push   %esi
404265:	05 cd fe ff ff       	add    $0xfffffecd,%eax
40426a:	83 f8 05             	cmp    $0x5,%eax
40426d:	0f 87 b0 00 00 00    	ja     0x404323