403905:	ff 15 fc 70 40 00    	call   *0x4070fc
40390b:	83 f8 ff             	cmp    $0xffffffff,%eax
40390e:	74 04                	je     0x403914
403910:	a8 10                	test   $0x10,%al
403912:	75 06                	jne    0x40391a
403914:	57                   	push   %edi
403915:	e8 9f 20 00 00       	call   0x4059b9
40391a:	57                   	push   %edi
40391b:	e8 52 20 00 00       	call   0x405972
403920:	50                   	push   %eax
403921:	55                   	push   %ebp
403922:	e8 b3 26 00 00       	call   0x405fda
403927:	55                   	push   %ebp
403928:	e8 33 21 00 00       	call   0x405a60
40392d:	85 c0                	test   %eax,%eax
40392f:	75 0c                	jne    0x40393d
403931:	ff b6 18 01 00 00    	push   0x118(%esi)
403937:	55                   	push   %ebp
403938:	e8 bf 26 00 00       	call   0x405ffc
40393d:	68 40 80 00 00       	push   $0x8040
403942:	53                   	push   %ebx
403943:	53                   	push   %ebx
403944:	6a 01                	push   $0x1
403946:	6a 67                	push   $0x67
403948:	ff 35 00 37 42 00    	push   0x423700
40394e:	ff 15 34 72 40 00    	call   *0x407234
403954:	a3 e8 2e 42 00       	mov    %eax,0x422ee8
403959:	83 7e 50 ff          	cmpl   $0xffffffff,0x50(%esi)
40395d:	bf a0 2e 42 00       	mov    $0x422ea0,%edi
403962:	74 7f                	je     0x4039e3
403964:	8b 0d 00 37 42 00    	mov    0x423700,%ecx
40396a:	be f4 91 40 00       	mov    $0x4091f4,%esi
40396f:	57                   	push   %edi
403970:	c7 05 a4 2e 42 00 00 	movl   $0x401000,0x422ea4
403977:	10 40 00
40397a:	89 0d b0 2e 42 00    	mov    %ecx,0x422eb0
403980:	a3 b4 2e 42 00       	mov    %eax,0x422eb4
403985:	89 35 c4 2e 42 00    	mov    %esi,0x422ec4
40398b:	ff 15 18 72 40 00    	call   *0x407218
403991:	66 85 c0             	test   %ax,%ax
403994:	0f 84 18 01 00 00    	je     0x403ab2
40399a:	8d 44 24 10          	lea    0x10(%esp),%eax
40399e:	53                   	push   %ebx
40399f:	50                   	push   %eax
4039a0:	53                   	push   %ebx
4039a1:	6a 30                	push   $0x30
4039a3:	ff 15 1c 72 40 00    	call   *0x40721c
4039a9:	53                   	push   %ebx
4039aa:	ff 35 00 37 42 00    	push   0x423700
4039b0:	8b 44 24 24          	mov    0x24(%esp),%eax
4039b4:	2b 44 24 1c          	sub    0x1c(%esp),%eax
4039b8:	53                   	push   %ebx
4039b9:	53                   	push   %ebx
4039ba:	50                   	push   %eax
4039bb:	8b 44 24 2c          	mov    0x2c(%esp),%eax
4039bf:	2b 44 24 24          	sub    0x24(%esp),%eax
4039c3:	50                   	push   %eax
4039c4:	ff 74 24 2c          	push   0x2c(%esp)
4039c8:	ff 74 24 2c          	push   0x2c(%esp)
4039cc:	68 00 00 00 80       	push   $0x80000000
4039d1:	53                   	push   %ebx
4039d2:	56                   	push   %esi
4039d3:	68 80 00 00 00       	push   $0x80
4039d8:	ff 15 20 72 40 00    	call   *0x407220
4039de:	a3 e8 fc 41 00       	mov    %eax,0x41fce8
4039e3:	53                   	push   %ebx
4039e4:	e8 22 da ff ff       	call   0x40140b
4039e9:	85 c0                	test   %eax,%eax
4039eb:	74 08                	je     0x4039f5
4039ed:	6a 02                	push   $0x2
4039ef:	58                   	pop    %eax
4039f0:	e9 bf 00 00 00       	jmp    0x403ab4
4039f5:	e8 c2 00 00 00       	call   0x403abc
4039fa:	39 1d c0 37 42 00    	cmp    %ebx,0x4237c0
403a00:	0f 85 83 00 00 00    	jne    0x403a89
403a06:	6a 05                	push   $0x5
403a08:	ff 35 e8 fc 41 00    	push   0x41fce8
403a0e:	ff 15 48 72 40 00    	call   *0x407248
403a14:	68 10 73 40 00       	push   $0x407310
403a19:	e8 e6 28 00 00       	call   0x406304
403a1e:	85 c0                	test   %eax,%eax
403a20:	75 0a                	jne    0x403a2c
403a22:	68 04 73 40 00       	push   $0x407304
403a27:	e8 d8 28 00 00       	call   0x406304
403a2c:	8b 35 24 72 40 00    	mov    0x407224,%esi
403a32:	bd f8 72 40 00       	mov    $0x4072f8,%ebp
403a37:	57                   	push   %edi
403a38:	55                   	push   %ebp
403a39:	53                   	push   %ebx
403a3a:	ff d6                	call   *%esi
403a3c:	85 c0                	test   %eax,%eax
403a3e:	75 16                	jne    0x403a56
403a40:	57                   	push   %edi
403a41:	68 ec 72 40 00       	push   $0x4072ec
403a46:	53                   	push   %ebx
403a47:	ff d6                	call   *%esi
403a49:	57                   	push   %edi
403a4a:	89 2d c4 2e 42 00    	mov    %ebp,0x422ec4
403a50:	ff 15 18 72 40 00    	call   *0x407218
403a56:	a1 e0 2e 42 00       	mov    0x422ee0,%eax
403a5b:	53                   	push   %ebx
403a5c:	83 c0 69             	add    $0x69,%eax
403a5f:	68 94 3b 40 00       	push   $0x403b94
403a64:	0f b7 c0             	movzwl %ax,%eax
403a67:	53                   	push   %ebx
403a68:	50                   	push   %eax
403a69:	ff 35 00 37 42 00    	push   0x423700
403a6f:	ff 15 28 72 40 00    	call   *0x407228
403a75:	6a 05                	push   $0x5
403a77:	8b f0                	mov    %eax,%esi
403a79:	e8 8d d9 ff ff       	call   0x40140b
403a7e:	6a 01                	push   $0x1
403a80:	e8 c2 fc ff ff       	call   0x403747
403a85:	8b c6                	mov    %esi,%eax
403a87:	eb 2b                	jmp    0x403ab4
403a89:	53                   	push   %ebx
403a8a:	e8 44 17 00 00       	call   0x4051d3
403a8f:	85 c0                	test   %eax,%eax
403a91:	74 18                	je     0x403aab
403a93:	39 1d cc 2e 42 00    	cmp    %ebx,0x422ecc
403a99:	0f 85 4e ff ff ff    	jne    0x4039ed
403a9f:	6a 02                	push   $0x2
403aa1:	e8 65 d9 ff ff       	call   0x40140b
403aa6:	e9 42 ff ff ff       	jmp    0x4039ed
403aab:	6a 01                	push   $0x1
403aad:	e8 59 d9 ff ff       	call   0x40140b
403ab2:	33 c0                	xor    %eax,%eax
403ab4:	5f                   	pop    %edi
403ab5:	5e                   	pop    %esi
403ab6:	5d                   	pop    %ebp
403ab7:	5b                   	pop    %ebx
403ab8:	83 c4 10             	add    $0x10,%esp
403abb:	c3                   	ret
403abc:	53                   	push   %ebx
403abd:	55                   	push   %ebp
403abe:	56                   	push   %esi
403abf:	57                   	push   %edi
403ac0:	bf 00 a0 42 00       	mov    $0x42a000,%edi
403ac5:	bb ff ff 00 00       	mov    $0xffff,%ebx
403aca:	57                   	push   %edi
403acb:	e8 81 24 00 00       	call   0x405f51
403ad0:	8b 35 64 37 42 00    	mov    0x423764,%esi
403ad6:	85 f6                	test   %esi,%esi
403ad8:	74 45                	je     0x403b1f
403ada:	8b 0d 14 37 42 00    	mov    0x423714,%ecx
403ae0:	8b 49 64             	mov    0x64(%ecx),%ecx
403ae3:	8b d1                	mov    %ecx,%edx
403ae5:	0f af ce             	imul   %esi,%ecx
403ae8:	f7 da                	neg    %edx
403aea:	03 0d 60 37 42 00    	add    0x423760,%ecx
403af0:	03 ca                	add    %edx,%ecx
403af2:	4e                   	dec    %esi
403af3:	66 8b 29             	mov    (%ecx),%bp
403af6:	66 33 e8             	xor    %ax,%bp
403af9:	23 eb                	and    %ebx,%ebp
403afb:	66 85 ed             	test   %bp,%bp
403afe:	74 06                	je     0x403b06
403b00:	85 f6                	test   %esi,%esi
403b02:	75 ec                	jne    0x403af0
403b04:	eb 19                	jmp    0x403b1f
403b06:	8b 51 02             	mov    0x2(%ecx),%edx
403b09:	89 15 e0 2e 42 00    	mov    %edx,0x422ee0
403b0f:	8b 51 06             	mov    0x6(%ecx),%edx
403b12:	89 15 c8 37 42 00    	mov    %edx,0x4237c8
403b18:	8d 51 0a             	lea    0xa(%ecx),%edx
403b1b:	85 d2                	test   %edx,%edx
403b1d:	75 12                	jne    0x403b31
403b1f:	66 81 fb ff ff       	cmp    $0xffff,%bx
403b24:	75 07                	jne    0x403b2d
403b26:	bb ff 03 00 00       	mov    $0x3ff,%ebx
403b2b:	eb a3                	jmp    0x403ad0
403b2d:	33 db                	xor    %ebx,%ebx
403b2f:	eb 9f                	jmp    0x403ad0
403b31:	89 15 dc 2e 42 00    	mov    %edx,0x422edc
403b37:	0f b7 01             	movzwl (%ecx),%eax
403b3a:	50                   	push   %eax
403b3b:	57                   	push   %edi
403b3c:	e8 f7 23 00 00       	call   0x405f38
403b41:	e8 2f 00 00 00       	call   0x403b75
403b46:	a1 4c 37 42 00       	mov    0x42374c,%eax
403b4b:	8b 35 48 37 42 00    	mov    0x423748,%esi
403b51:	85 c0                	test   %eax,%eax
403b53:	74 1b                	je     0x403b70
403b55:	8b f8                	mov    %eax,%edi
403b57:	8b 06                	mov    (%esi),%eax
403b59:	85 c0                	test   %eax,%eax
403b5b:	74 0a                	je     0x403b67
403b5d:	50                   	push   %eax
403b5e:	8d 46 18             	lea    0x18(%esi),%eax
403b61:	50                   	push   %eax
403b62:	e8 95 24 00 00       	call   0x405ffc
403b67:	81 c6 18 04 00 00    	add    $0x418,%esi
403b6d:	4f                   	dec    %edi
403b6e:	75 e7                	jne    0x403b57
403b70:	5f                   	pop    %edi
403b71:	5e                   	pop    %esi
403b72:	5d                   	pop    %ebp
403b73:	5b                   	pop    %ebx
403b74:	c3                   	ret
403b75:	56                   	push   %esi
403b76:	be 00 2f 42 00       	mov    $0x422f00,%esi
403b7b:	6a fe                	push   $0xfffffffe
403b7d:	56                   	push   %esi
403b7e:	e8 79 24 00 00       	call   0x405ffc
403b83:	56                   	push   %esi
403b84:	ff 35 e8 fc 41 00    	push   0x41fce8
403b8a:	ff 15 40 72 40 00    	call   *0x407240
403b90:	8b c6                	mov    %esi,%eax
403b92:	5e                   	pop    %esi
403b93:	c3                   	ret
403b94:	83 ec 10             	sub    $0x10,%esp
403b97:	b9 10 01 00 00       	mov    $0x110,%ecx
403b9c:	53                   	push   %ebx
403b9d:	8b 5c 24 1c          	mov    0x1c(%esp),%ebx
403ba1:	55                   	push   %ebp
403ba2:	56                   	push   %esi
403ba3:	3b d9                	cmp    %ecx,%ebx
403ba5:	57                   	push   %edi
403ba6:	0f 84 3b 01 00 00    	je     0x403ce7
403bac:	81 fb 08 04 00 00    	cmp    $0x408,%ebx
403bb2:	0f 84 2f 01 00 00    	je     0x403ce7
403bb8:	8b 7c 24 24          	mov    0x24(%esp),%edi
403bbc:	33 ed                	xor    %ebp,%ebp
403bbe:	83 fb 47             	cmp    $0x47,%ebx
403bc1:	75 13                	jne    0x403bd6
403bc3:	6a 13                	push   $0x13
403bc5:	55                   	push   %ebp
403bc6:	55                   	push   %ebp
403bc7:	55                   	push   %ebp
403bc8:	55                   	push   %ebp
403bc9:	57                   	push   %edi
403bca:	ff 35 e8 fc 41 00    	push   0x41fce8
403bd0:	ff 15 94 71 40 00    	call   *0x407194
403bd6:	83 fb 05             	cmp    $0x5,%ebx
403bd9:	75 18                	jne    0x403bf3
403bdb:	8b 44 24 2c          	mov    0x2c(%esp),%eax
403bdf:	48                   	dec    %eax
403be0:	f7 d8                	neg    %eax
403be2:	1b c0                	sbb    %eax,%eax
403be4:	23 c3                	and    %ebx,%eax
403be6:	50                   	push   %eax
403be7:	ff 35 e8 fc 41 00    	push   0x41fce8
403bed:	ff 15 48 72 40 00    	call   *0x407248
403bf3:	81 fb 0d 04 00 00    	cmp    $0x40d,%ebx
403bf9:	75 1a                	jne    0x403c15
403bfb:	ff 35 d8 2e 42 00    	push   0x422ed8
403c01:	ff 15 70 72 40 00    	call   *0x407270
403c07:	8b 44 24 2c          	mov    0x2c(%esp),%eax
403c0b:	a3 d8 2e 42 00       	mov    %eax,0x422ed8
403c10:	e9 fd 03 00 00       	jmp    0x404012
403c15:	83 fb 11             	cmp    $0x11,%ebx
403c18:	75 11                	jne    0x403c2b
403c1a:	55                   	push   %ebp
403c1b:	55                   	push   %ebp
403c1c:	57                   	push   %edi
403c1d:	ff 15 4c 72 40 00    	call   *0x40724c
403c23:	33 c0                	xor    %eax,%eax
403c25:	40                   	inc    %eax
403c26:	e9 0c 04 00 00       	jmp    0x404037
403c2b:	81 fb 11 01 00 00    	cmp    $0x111,%ebx
403c31:	0f 85 9d 00 00 00    	jne    0x403cd4
403c37:	0f b7 74 24 2c       	movzwl 0x2c(%esp),%esi
403c3c:	56                   	push   %esi
403c3d:	57                   	push   %edi
403c3e:	ff 15 d0 71 40 00    	call   *0x4071d0
403c44:	8b f8                	mov    %eax,%edi
403c46:	3b fd                	cmp    %ebp,%edi
403c48:	74 1d                	je     0x403c67
403c4a:	55                   	push   %ebp
403c4b:	55                   	push   %ebp
403c4c:	68 f3 00 00 00       	push   $0xf3
403c51:	57                   	push   %edi
403c52:	ff 15 00 72 40 00    	call   *0x407200
403c58:	57                   	push   %edi
403c59:	ff 15 90 71 40 00    	call   *0x407190
403c5f:	85 c0                	test   %eax,%eax
403c61:	0f 84 ce 03 00 00    	je     0x404035
403c67:	83 fe 01             	cmp    $0x1,%esi
403c6a:	75 03                	jne    0x403c6f
403c6c:	56                   	push   %esi
403c6d:	eb 2e                	jmp    0x403c9d
403c6f:	83 fe 03             	cmp    $0x3,%esi
403c72:	75 0c                	jne    0x403c80
403c74:	39 2d dc 91 40 00    	cmp    %ebp,0x4091dc
403c7a:	7e 3f                	jle    0x403cbb
403c7c:	6a ff                	push   $0xffffffff
403c7e:	eb 1d                	jmp    0x403c9d
403c80:	6a 02                	push   $0x2
403c82:	5f                   	pop    %edi
403c83:	3b f7                	cmp    %edi,%esi
403c85:	75 34                	jne    0x403cbb
403c87:	39 2d ac 37 42 00    	cmp    %ebp,0x4237ac
403c8d:	74 15                	je     0x403ca4
403c8f:	57                   	push   %edi
403c90:	e8 76 d7 ff ff       	call   0x40140b
403c95:	89 3d d8 f0 41 00    	mov    %edi,0x41f0d8
403c9b:	6a 78                	push   $0x78
403c9d:	e8 9f 03 00 00       	call   0x404041
403ca2:	eb 30                	jmp    0x403cd4
403ca4:	6a 03                	push   $0x3
403ca6:	e8 60 d7 ff ff       	call   0x40140b
403cab:	85 c0                	test   %eax,%eax
403cad:	75 25                	jne    0x403cd4
403caf:	c7 05 d8 f0 41 00 01 	movl   $0x1,0x41f0d8
403cb6:	00 00 00
403cb9:	eb e0                	jmp    0x403c9b
403cbb:	ff 74 24 30          	push   0x30(%esp)
403cbf:	ff 74 24 30          	push   0x30(%esp)
403cc3:	68 11 01 00 00       	push   $0x111
403cc8:	ff 35 d8 2e 42 00    	push   0x422ed8
403cce:	ff 15 00 72 40 00    	call   *0x407200
403cd4:	ff 74 24 30          	push   0x30(%esp)
403cd8:	ff 74 24 30          	push   0x30(%esp)
403cdc:	53                   	push   %ebx
403cdd:	e8 ed 03 00 00       	call   0x4040cf
403ce2:	e9 50 03 00 00       	jmp    0x404037
403ce7:	8b 44 24 2c          	mov    0x2c(%esp),%eax
403ceb:	8b 7c 24 24          	mov    0x24(%esp),%edi
403cef:	3b d9                	cmp    %ecx,%ebx
403cf1:	a3 f0 fc 41 00       	mov    %eax,0x41fcf0
403cf6:	75 4d                	jne    0x403d45
403cf8:	8b 35 d0 71 40 00    	mov    0x4071d0,%esi
403cfe:	6a 01                	push   $0x1
403d00:	57                   	push   %edi
403d01:	89 3d 08 37 42 00    	mov    %edi,0x423708
403d07:	ff d6                	call   *%esi
403d09:	6a 02                	push   $0x2
403d0b:	57                   	push   %edi
403d0c:	a3 04 fd 41 00       	mov    %eax,0x41fd04
403d11:	ff d6                	call   *%esi
403d13:	6a ff                	push   $0xffffffff
403d15:	6a 1c                	push   $0x1c
403d17:	57                   	push   %edi
403d18:	a3 d0 ec 41 00       	mov    %eax,0x41ecd0
403d1d:	e8 46 03 00 00       	call   0x404068
403d22:	ff 35 e8 2e 42 00    	push   0x422ee8
403d28:	6a f2                	push   $0xfffffff2
403d2a:	57                   	push   %edi
403d2b:	ff 15 88 71 40 00    	call   *0x407188
403d31:	6a 04                	push   $0x4
403d33:	e8 d3 d6 ff ff       	call   0x40140b
403d38:	a3 cc 2e 42 00       	mov    %eax,0x422ecc
403d3d:	33 c0                	xor    %eax,%eax
403d3f:	40                   	inc    %eax
403d40:	a3 f0 fc 41 00       	mov    %eax,0x41fcf0
403d45:	8b 0d dc 91 40 00    	mov    0x4091dc,%ecx
403d4b:	33 ed                	xor    %ebp,%ebp
403d4d:	8b f1                	mov    %ecx,%esi
403d4f:	c1 e6 06             	shl    $0x6,%esi
403d52:	03 35 40 37 42 00    	add    0x423740,%esi