40370b:	68 bc 72 40 00       	push   $0x4072bc
403710:	68 03 00 00 80       	push   $0x80000003
403715:	e8 33 23 00 00       	call   0x405a4d
40371a:	57                   	push   %edi
40371b:	68 00 a0 42 00       	push   $0x42a000
403720:	e8 5d 24 00 00       	call   0x405b82
403725:	e8 4e 02 00 00       	call   0x403978
40372a:	a1 b8 3e 42 00       	mov    0x423eb8,%eax
40372f:	bd 00 94 42 00       	mov    $0x429400,%ebp
403734:	83 e0 20             	and    $0x20,%eax
403737:	55                   	push   %ebp
403738:	a3 20 3f 42 00       	mov    %eax,0x423f20
40373d:	c7 05 3c 3f 42 00 00 	movl   $0x10000,0x423f3c
403744:	00 01 00
403747:	e8 ee 1f 00 00       	call   0x40573a
40374c:	85 c0                	test   %eax,%eax
40374e:	0f 85 81 00 00 00    	jne    0x4037d5
403754:	8b 4e 48             	mov    0x48(%esi),%ecx
403757:	3b cb                	cmp    %ebx,%ecx
403759:	74 7a                	je     0x4037d5
40375b:	8b 56 4c             	mov    0x4c(%esi),%edx
40375e:	a1 d8 3e 42 00       	mov    0x423ed8,%eax
403763:	bf 40 2e 42 00       	mov    $0x422e40,%edi
403768:	53                   	push   %ebx
403769:	03 d0                	add    %eax,%edx
40376b:	57                   	push   %edi
40376c:	03 c8                	add    %eax,%ecx
40376e:	52                   	push   %edx
40376f:	51                   	push   %ecx
403770:	ff 76 44             	push   0x44(%esi)
403773:	e8 d5 22 00 00       	call   0x405a4d
403778:	a0 40 2e 42 00       	mov    0x422e40,%al
40377d:	3a c3                	cmp    %bl,%al
40377f:	74 54                	je     0x4037d5
403781:	3c 22                	cmp    $0x22,%al
403783:	75 0f                	jne    0x403794
403785:	bf 41 2e 42 00       	mov    $0x422e41,%edi
40378a:	6a 22                	push   $0x22
40378c:	57                   	push   %edi
40378d:	e8 f2 1e 00 00       	call   0x405684
403792:	88 18                	mov    %bl,(%eax)
403794:	57                   	push   %edi
403795:	e8 e2 23 00 00       	call   0x405b7c
40379a:	8d 44 38 fc          	lea    -0x4(%eax,%edi,1),%eax
40379e:	3b c7                	cmp    %edi,%eax
4037a0:	76 26                	jbe    0x4037c8
4037a2:	68 dc 91 40 00       	push   $0x4091dc
4037a7:	50                   	push   %eax
4037a8:	ff 15 f0 70 40 00    	call   *0x4070f0
4037ae:	85 c0                	test   %eax,%eax
4037b0:	75 16                	jne    0x4037c8
4037b2:	57                   	push   %edi
4037b3:	ff 15 78 70 40 00    	call   *0x407078
4037b9:	83 f8 ff             	cmp    $0xffffffff,%eax
4037bc:	74 04                	je     0x4037c2
4037be:	a8 10                	test   $0x10,%al
4037c0:	75 06                	jne    0x4037c8
4037c2:	57                   	push   %edi
4037c3:	e8 d8 1e 00 00       	call   0x4056a0
4037c8:	57                   	push   %edi
4037c9:	e8 8b 1e 00 00       	call   0x405659
4037ce:	50                   	push   %eax
4037cf:	55                   	push   %ebp
4037d0:	e8 91 23 00 00       	call   0x405b66
4037d5:	55                   	push   %ebp
4037d6:	e8 5f 1f 00 00       	call   0x40573a
4037db:	85 c0                	test   %eax,%eax
4037dd:	75 0c                	jne    0x4037eb
4037df:	ff b6 18 01 00 00    	push   0x118(%esi)
4037e5:	55                   	push   %ebp
4037e6:	e8 9d 23 00 00       	call   0x405b88
4037eb:	68 40 80 00 00       	push   $0x8040
4037f0:	53                   	push   %ebx
4037f1:	53                   	push   %ebx
4037f2:	6a 01                	push   $0x1
4037f4:	6a 67                	push   $0x67
4037f6:	ff 35 a0 3e 42 00    	push   0x423ea0
4037fc:	ff 15 34 72 40 00    	call   *0x407234
403802:	a3 88 36 42 00       	mov    %eax,0x423688
403807:	83 7e 50 ff          	cmpl   $0xffffffff,0x50(%esi)
40380b:	bf 40 36 42 00       	mov    $0x423640,%edi
403810:	0f 84 89 00 00 00    	je     0x40389f
403816:	8b 0d a0 3e 42 00    	mov    0x423ea0,%ecx
40381c:	a3 54 36 42 00       	mov    %eax,0x423654
403821:	8d 44 24 10          	lea    0x10(%esp),%eax
403825:	57                   	push   %edi
403826:	c7 44 24 14 5f 4e 62 	movl   $0x624e5f,0x14(%esp)
40382d:	00
40382e:	c7 05 44 36 42 00 00 	movl   $0x401000,0x423644
403835:	10 40 00
403838:	89 0d 50 36 42 00    	mov    %ecx,0x423650
40383e:	a3 64 36 42 00       	mov    %eax,0x423664
403843:	ff 15 bc 71 40 00    	call   *0x4071bc
403849:	66 85 c0             	test   %ax,%ax
40384c:	0f 84 1c 01 00 00    	je     0x40396e
403852:	8d 44 24 14          	lea    0x14(%esp),%eax
403856:	53                   	push   %ebx
403857:	50                   	push   %eax
403858:	53                   	push   %ebx
403859:	6a 30                	push   $0x30
40385b:	ff 15 0c 72 40 00    	call   *0x40720c
403861:	53                   	push   %ebx
403862:	ff 35 a0 3e 42 00    	push   0x423ea0
403868:	8b 44 24 28          	mov    0x28(%esp),%eax
40386c:	2b 44 24 20          	sub    0x20(%esp),%eax
403870:	53                   	push   %ebx
403871:	53                   	push   %ebx
403872:	50                   	push   %eax
403873:	8b 44 24 30          	mov    0x30(%esp),%eax
403877:	2b 44 24 28          	sub    0x28(%esp),%eax
40387b:	50                   	push   %eax
40387c:	8d 44 24 28          	lea    0x28(%esp),%eax
403880:	ff 74 24 30          	push   0x30(%esp)
403884:	ff 74 24 30          	push   0x30(%esp)
403888:	68 00 00 00 80       	push   $0x80000000
40388d:	53                   	push   %ebx
40388e:	50                   	push   %eax
40388f:	68 80 00 00 00       	push   $0x80
403894:	ff 15 10 72 40 00    	call   *0x407210
40389a:	a3 78 04 42 00       	mov    %eax,0x420478
40389f:	53                   	push   %ebx
4038a0:	e8 66 db ff ff       	call   0x40140b
4038a5:	85 c0                	test   %eax,%eax
4038a7:	74 08                	je     0x4038b1
4038a9:	6a 02                	push   $0x2
4038ab:	58                   	pop    %eax
4038ac:	e9 bf 00 00 00       	jmp    0x403970
4038b1:	e8 c2 00 00 00       	call   0x403978
4038b6:	39 1d 40 3f 42 00    	cmp    %ebx,0x423f40
4038bc:	0f 85 83 00 00 00    	jne    0x403945
4038c2:	6a 05                	push   $0x5
4038c4:	ff 35 78 04 42 00    	push   0x420478
4038ca:	ff 15 60 72 40 00    	call   *0x407260
4038d0:	8b 35 b8 70 40 00    	mov    0x4070b8,%esi
4038d6:	68 b0 72 40 00       	push   $0x4072b0
4038db:	ff d6                	call   *%esi
4038dd:	85 c0                	test   %eax,%eax
4038df:	75 07                	jne    0x4038e8
4038e1:	68 a4 72 40 00       	push   $0x4072a4
4038e6:	ff d6                	call   *%esi
4038e8:	8b 35 14 72 40 00    	mov    0x407214,%esi
4038ee:	bd 98 72 40 00       	mov    $0x407298,%ebp
4038f3:	57                   	push   %edi
4038f4:	55                   	push   %ebp
4038f5:	53                   	push   %ebx
4038f6:	ff d6                	call   *%esi
4038f8:	85 c0                	test   %eax,%eax
4038fa:	75 16                	jne    0x403912
4038fc:	57                   	push   %edi
4038fd:	68 8c 72 40 00       	push   $0x40728c
403902:	53                   	push   %ebx
403903:	ff d6                	call   *%esi
403905:	57                   	push   %edi
403906:	89 2d 64 36 42 00    	mov    %ebp,0x423664
40390c:	ff 15 bc 71 40 00    	call   *0x4071bc
403912:	a1 80 36 42 00       	mov    0x423680,%eax
403917:	53                   	push   %ebx
403918:	83 c0 69             	add    $0x69,%eax
40391b:	68 45 3a 40 00       	push   $0x403a45
403920:	0f b7 c0             	movzwl %ax,%eax
403923:	53                   	push   %ebx
403924:	50                   	push   %eax
403925:	ff 35 a0 3e 42 00    	push   0x423ea0
40392b:	ff 15 18 72 40 00    	call   *0x407218
403931:	6a 05                	push   $0x5
403933:	8b f0                	mov    %eax,%esi
403935:	e8 d1 da ff ff       	call   0x40140b
40393a:	6a 01                	push   $0x1
40393c:	e8 be fc ff ff       	call   0x4035ff
403941:	8b c6                	mov    %esi,%eax
403943:	eb 2b                	jmp    0x403970
403945:	53                   	push   %ebx
403946:	e8 8b 16 00 00       	call   0x404fd6
40394b:	85 c0                	test   %eax,%eax
40394d:	74 18                	je     0x403967
40394f:	39 1d 6c 36 42 00    	cmp    %ebx,0x42366c
403955:	0f 85 4e ff ff ff    	jne    0x4038a9
40395b:	6a 02                	push   $0x2
40395d:	e8 a9 da ff ff       	call   0x40140b
403962:	e9 42 ff ff ff       	jmp    0x4038a9
403967:	6a 01                	push   $0x1
403969:	e8 9d da ff ff       	call   0x40140b
40396e:	33 c0                	xor    %eax,%eax
403970:	5f                   	pop    %edi
403971:	5e                   	pop    %esi
403972:	5d                   	pop    %ebp
403973:	5b                   	pop    %ebx
403974:	83 c4 14             	add    $0x14,%esp
403977:	c3                   	ret
403978:	53                   	push   %ebx
403979:	55                   	push   %ebp
40397a:	56                   	push   %esi
40397b:	57                   	push   %edi
40397c:	bf 00 a0 42 00       	mov    $0x42a000,%edi
403981:	bb ff ff 00 00       	mov    $0xffff,%ebx
403986:	57                   	push   %edi
403987:	e8 51 21 00 00       	call   0x405add
40398c:	8b 35 e4 3e 42 00    	mov    0x423ee4,%esi
403992:	85 f6                	test   %esi,%esi
403994:	74 45                	je     0x4039db
403996:	8b 0d b0 3e 42 00    	mov    0x423eb0,%ecx
40399c:	8b 49 64             	mov    0x64(%ecx),%ecx
40399f:	8b d1                	mov    %ecx,%edx
4039a1:	0f af ce             	imul   %esi,%ecx
4039a4:	f7 da                	neg    %edx
4039a6:	03 0d e0 3e 42 00    	add    0x423ee0,%ecx
4039ac:	03 ca                	add    %edx,%ecx
4039ae:	4e                   	dec    %esi
4039af:	66 8b 29             	mov    (%ecx),%bp
4039b2:	66 33 e8             	xor    %ax,%bp
4039b5:	23 eb                	and    %ebx,%ebp
4039b7:	66 85 ed             	test   %bp,%bp
4039ba:	74 06                	je     0x4039c2
4039bc:	85 f6                	test   %esi,%esi
4039be:	75 ec                	jne    0x4039ac
4039c0:	eb 19                	jmp    0x4039db
4039c2:	8b 51 02             	mov    0x2(%ecx),%edx
4039c5:	89 15 80 36 42 00    	mov    %edx,0x423680
4039cb:	8b 51 06             	mov    0x6(%ecx),%edx
4039ce:	89 15 48 3f 42 00    	mov    %edx,0x423f48
4039d4:	8d 51 0a             	lea    0xa(%ecx),%edx
4039d7:	85 d2                	test   %edx,%edx
4039d9:	75 12                	jne    0x4039ed
4039db:	66 81 fb ff ff       	cmp    $0xffff,%bx
4039e0:	75 07                	jne    0x4039e9
4039e2:	bb ff 03 00 00       	mov    $0x3ff,%ebx
4039e7:	eb a3                	jmp    0x40398c
4039e9:	33 db                	xor    %ebx,%ebx
4039eb:	eb 9f                	jmp    0x40398c
4039ed:	89 15 7c 36 42 00    	mov    %edx,0x42367c
4039f3:	0f b7 01             	movzwl (%ecx),%eax
4039f6:	50                   	push   %eax
4039f7:	57                   	push   %edi
4039f8:	e8 c7 20 00 00       	call   0x405ac4
4039fd:	6a fe                	push   $0xfffffffe
4039ff:	68 a0 36 42 00       	push   $0x4236a0
403a04:	e8 7f 21 00 00       	call   0x405b88
403a09:	50                   	push   %eax
403a0a:	ff 35 78 04 42 00    	push   0x420478
403a10:	ff 15 f4 71 40 00    	call   *0x4071f4
403a16:	a1 cc 3e 42 00       	mov    0x423ecc,%eax
403a1b:	8b 35 c8 3e 42 00    	mov    0x423ec8,%esi
403a21:	85 c0                	test   %eax,%eax
403a23:	74 1b                	je     0x403a40
403a25:	8b f8                	mov    %eax,%edi
403a27:	8b 06                	mov    (%esi),%eax
403a29:	85 c0                	test   %eax,%eax
403a2b:	74 0a                	je     0x403a37
403a2d:	50                   	push   %eax
403a2e:	8d 46 18             	lea    0x18(%esi),%eax
403a31:	50                   	push   %eax
403a32:	e8 51 21 00 00       	call   0x405b88
403a37:	81 c6 18 04 00 00    	add    $0x418,%esi
403a3d:	4f                   	dec    %edi
403a3e:	75 e7                	jne    0x403a27
403a40:	5f                   	pop    %edi
403a41:	5e                   	pop    %esi
403a42:	5d                   	pop    %ebp
403a43:	5b                   	pop    %ebx
403a44:	c3                   	ret
403a45:	83 ec 10             	sub    $0x10,%esp
403a48:	b9 10 01 00 00       	mov    $0x110,%ecx
403a4d:	53                   	push   %ebx
403a4e:	8b 5c 24 1c          	mov    0x1c(%esp),%ebx
403a52:	55                   	push   %ebp
403a53:	56                   	push   %esi
403a54:	3b d9                	cmp    %ecx,%ebx
403a56:	57                   	push   %edi
403a57:	0f 84 3b 01 00 00    	je     0x403b98
403a5d:	81 fb 08 04 00 00    	cmp    $0x408,%ebx
403a63:	0f 84 2f 01 00 00    	je     0x403b98
403a69:	8b 7c 24 24          	mov    0x24(%esp),%edi
403a6d:	33 ed                	xor    %ebp,%ebp
403a6f:	83 fb 47             	cmp    $0x47,%ebx
403a72:	75 13                	jne    0x403a87
403a74:	6a 13                	push   $0x13
403a76:	55                   	push   %ebp
403a77:	55                   	push   %ebp
403a78:	55                   	push   %ebp
403a79:	55                   	push   %ebp
403a7a:	57                   	push   %edi
403a7b:	ff 35 78 04 42 00    	push   0x420478
403a81:	ff 15 88 71 40 00    	call   *0x407188
403a87:	83 fb 05             	cmp    $0x5,%ebx
403a8a:	75 18                	jne    0x403aa4
403a8c:	8b 44 24 2c          	mov    0x2c(%esp),%eax
403a90:	48                   	dec    %eax
403a91:	f7 d8                	neg    %eax
403a93:	1b c0                	sbb    %eax,%eax
403a95:	23 c3                	and    %ebx,%eax
403a97:	50                   	push   %eax
403a98:	ff 35 78 04 42 00    	push   0x420478
403a9e:	ff 15 60 72 40 00    	call   *0x407260
403aa4:	81 fb 0d 04 00 00    	cmp    $0x40d,%ebx
403aaa:	75 1a                	jne    0x403ac6
403aac:	ff 35 78 36 42 00    	push   0x423678
403ab2:	ff 15 e8 71 40 00    	call   *0x4071e8
403ab8:	8b 44 24 2c          	mov    0x2c(%esp),%eax
403abc:	a3 78 36 42 00       	mov    %eax,0x423678
403ac1:	e9 fc 03 00 00       	jmp    0x403ec2
403ac6:	83 fb 11             	cmp    $0x11,%ebx
403ac9:	75 11                	jne    0x403adc
403acb:	55                   	push   %ebp
403acc:	55                   	push   %ebp
403acd:	57                   	push   %edi
403ace:	ff 15 30 72 40 00    	call   *0x407230
403ad4:	33 c0                	xor    %eax,%eax
403ad6:	40                   	inc    %eax
403ad7:	e9 0b 04 00 00       	jmp    0x403ee7
403adc:	81 fb 11 01 00 00    	cmp    $0x111,%ebx
403ae2:	0f 85 9d 00 00 00    	jne    0x403b85
403ae8:	0f b7 74 24 2c       	movzwl 0x2c(%esp),%esi
403aed:	56                   	push   %esi
403aee:	57                   	push   %edi
403aef:	ff 15 2c 72 40 00    	call   *0x40722c
403af5:	8b f8                	mov    %eax,%edi
403af7:	3b fd                	cmp    %ebp,%edi
403af9:	74 1d                	je     0x403b18
403afb:	55                   	push   %ebp
403afc:	55                   	push   %ebp
403afd:	68 f3 00 00 00       	push   $0xf3
403b02:	57                   	push   %edi
403b03:	ff 15 44 72 40 00    	call   *0x407244
403b09:	57                   	push   %edi
403b0a:	ff 15 84 71 40 00    	call   *0x407184
403b10:	85 c0                	test   %eax,%eax
403b12:	0f 84 cd 03 00 00    	je     0x403ee5
403b18:	83 fe 01             	cmp    $0x1,%esi
403b1b:	75 03                	jne    0x403b20
403b1d:	56                   	push   %esi
403b1e:	eb 2e                	jmp    0x403b4e
403b20:	83 fe 03             	cmp    $0x3,%esi
403b23:	75 0c                	jne    0x403b31
403b25:	39 2d c4 91 40 00    	cmp    %ebp,0x4091c4
403b2b:	7e 3f                	jle    0x403b6c
403b2d:	6a ff                	push   $0xffffffff
403b2f:	eb 1d                	jmp    0x403b4e
403b31:	6a 02                	push   $0x2
403b33:	5f                   	pop    %edi
403b34:	3b f7                	cmp    %edi,%esi
403b36:	75 34                	jne    0x403b6c
403b38:	39 2d 2c 3f 42 00    	cmp    %ebp,0x423f2c
403b3e:	74 15                	je     0x403b55
403b40:	57                   	push   %edi
403b41:	e8 c5 d8 ff ff       	call   0x40140b
403b46:	89 3d 68 f8 41 00    	mov    %edi,0x41f868
403b4c:	6a 78                	push   $0x78
403b4e:	e8 9e 03 00 00       	call   0x403ef1
403b53:	eb 30                	jmp    0x403b85
403b55:	6a 03                	push   $0x3