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
403b57:	e8 af d8 ff ff       	call   0x40140b
403b5c:	85 c0                	test   %eax,%eax
403b5e:	75 25                	jne    0x403b85
403b60:	c7 05 68 f8 41 00 01 	movl   $0x1,0x41f868
403b67:	00 00 00
403b6a:	eb e0                	jmp    0x403b4c
403b6c:	ff 74 24 30          	push   0x30(%esp)
403b70:	ff 74 24 30          	push   0x30(%esp)
403b74:	68 11 01 00 00       	push   $0x111
403b79:	ff 35 78 36 42 00    	push   0x423678
403b7f:	ff 15 44 72 40 00    	call   *0x407244
403b85:	ff 74 24 30          	push   0x30(%esp)
403b89:	ff 74 24 30          	push   0x30(%esp)
403b8d:	53                   	push   %ebx
403b8e:	e8 ec 03 00 00       	call   0x403f7f
403b93:	e9 4f 03 00 00       	jmp    0x403ee7
403b98:	8b 44 24 2c          	mov    0x2c(%esp),%eax
403b9c:	8b 7c 24 24          	mov    0x24(%esp),%edi
403ba0:	3b d9                	cmp    %ecx,%ebx
403ba2:	a3 84 04 42 00       	mov    %eax,0x420484
403ba7:	75 4d                	jne    0x403bf6
403ba9:	8b 35 2c 72 40 00    	mov    0x40722c,%esi
403baf:	6a 01                	push   $0x1
403bb1:	57                   	push   %edi
403bb2:	89 3d a8 3e 42 00    	mov    %edi,0x423ea8
403bb8:	ff d6                	call   *%esi
403bba:	6a 02                	push   $0x2
403bbc:	57                   	push   %edi
403bbd:	a3 98 04 42 00       	mov    %eax,0x420498
403bc2:	ff d6                	call   *%esi
403bc4:	6a ff                	push   $0xffffffff
403bc6:	6a 1c                	push   $0x1c
403bc8:	57                   	push   %edi
403bc9:	a3 60 f4 41 00       	mov    %eax,0x41f460
403bce:	e8 45 03 00 00       	call   0x403f18
403bd3:	ff 35 88 36 42 00    	push   0x423688
403bd9:	6a f2                	push   $0xfffffff2
403bdb:	57                   	push   %edi
403bdc:	ff 15 80 71 40 00    	call   *0x407180
403be2:	6a 04                	push   $0x4
403be4:	e8 22 d8 ff ff       	call   0x40140b
403be9:	a3 6c 36 42 00       	mov    %eax,0x42366c
403bee:	33 c0                	xor    %eax,%eax
403bf0:	40                   	inc    %eax
403bf1:	a3 84 04 42 00       	mov    %eax,0x420484
403bf6:	8b 0d c4 91 40 00    	mov    0x4091c4,%ecx
403bfc:	33 ed                	xor    %ebp,%ebp
403bfe:	8b f1                	mov    %ecx,%esi
403c00:	c1 e6 06             	shl    $0x6,%esi
403c03:	03 35 c0 3e 42 00    	add    0x423ec0,%esi
403c09:	3b cd                	cmp    %ebp,%ecx
403c0b:	7c 3e                	jl     0x403c4b
403c0d:	83 f8 01             	cmp    $0x1,%eax
403c10:	75 31                	jne    0x403c43
403c12:	55                   	push   %ebp
403c13:	ff 76 10             	push   0x10(%esi)
403c16:	e8 6e d7 ff ff       	call   0x401389
403c1b:	85 c0                	test   %eax,%eax
403c1d:	74 24                	je     0x403c43
403c1f:	6a 01                	push   $0x1
403c21:	55                   	push   %ebp
403c22:	68 0f 04 00 00       	push   $0x40f
403c27:	ff 35 78 36 42 00    	push   0x423678
403c2d:	ff 15 44 72 40 00    	call   *0x407244
403c33:	33 c0                	xor    %eax,%eax
403c35:	39 2d 6c 36 42 00    	cmp    %ebp,0x42366c
403c3b:	0f 94 c0             	sete   %al
403c3e:	e9 a4 02 00 00       	jmp    0x403ee7
403c43:	39 2e                	cmp    %ebp,(%esi)
403c45:	0f 84 9a 02 00 00    	je     0x403ee5
403c4b:	68 0b 04 00 00       	push   $0x40b
403c50:	e8 0f 03 00 00       	call   0x403f64
403c55:	a1 84 04 42 00       	mov    0x420484,%eax
403c5a:	01 05 c4 91 40 00    	add    %eax,0x4091c4
403c60:	c1 e0 06             	shl    $0x6,%eax
403c63:	03 f0                	add    %eax,%esi
403c65:	a1 c4 91 40 00       	mov    0x4091c4,%eax
403c6a:	3b 05 c4 3e 42 00    	cmp    0x423ec4,%eax
403c70:	75 07                	jne    0x403c79
403c72:	6a 01                	push   $0x1
403c74:	e8 92 d7 ff ff       	call   0x40140b
403c79:	39 2d 6c 36 42 00    	cmp    %ebp,0x42366c
403c7f:	0f 85 1e 02 00 00    	jne    0x403ea3
403c85:	a1 c4 3e 42 00       	mov    0x423ec4,%eax
403c8a:	39 05 c4 91 40 00    	cmp    %eax,0x4091c4
403c90:	0f 83 0d 02 00 00    	jae    0x403ea3
403c96:	ff 76 24             	push   0x24(%esi)
403c99:	8b 5e 14             	mov    0x14(%esi),%ebx
403c9c:	68 00 b8 42 00       	push   $0x42b800
403ca1:	e8 e2 1e 00 00       	call   0x405b88
403ca6:	ff 76 20             	push   0x20(%esi)
403ca9:	68 19 fc ff ff       	push   $0xfffffc19
403cae:	57                   	push   %edi
403caf:	e8 64 02 00 00       	call   0x403f18
403cb4:	ff 76 1c             	push   0x1c(%esi)
403cb7:	68 1b fc ff ff       	push   $0xfffffc1b
403cbc:	57                   	push   %edi
403cbd:	e8 56 02 00 00       	call   0x403f18
403cc2:	ff 76 28             	push   0x28(%esi)
403cc5:	68 1a fc ff ff       	push   $0xfffffc1a
403cca:	57                   	push   %edi
403ccb:	e8 48 02 00 00       	call   0x403f18
403cd0:	6a 03                	push   $0x3
403cd2:	57                   	push   %edi
403cd3:	ff 15 2c 72 40 00    	call   *0x40722c
403cd9:	39 2d 2c 3f 42 00    	cmp    %ebp,0x423f2c
403cdf:	89 44 24 2c          	mov    %eax,0x2c(%esp)
403ce3:	74 08                	je     0x403ced
403ce5:	66 81 e3 fd fe       	and    $0xfefd,%bx
403cea:	83 cb 04             	or     $0x4,%ebx
403ced:	8b cb                	mov    %ebx,%ecx
403cef:	83 e1 08             	and    $0x8,%ecx
403cf2:	51                   	push   %ecx
403cf3:	50                   	push   %eax
403cf4:	ff 15 60 72 40 00    	call   *0x407260
403cfa:	8b c3                	mov    %ebx,%eax
403cfc:	25 00 01 00 00       	and    $0x100,%eax
403d01:	50                   	push   %eax
403d02:	ff 74 24 30          	push   0x30(%esp)
403d06:	ff 15 3c 72 40 00    	call   *0x40723c
403d0c:	8b c3                	mov    %ebx,%eax
403d0e:	83 e0 02             	and    $0x2,%eax
403d11:	50                   	push   %eax
403d12:	e8 23 02 00 00       	call   0x403f3a
403d17:	83 e3 04             	and    $0x4,%ebx
403d1a:	53                   	push   %ebx
403d1b:	ff 35 60 f4 41 00    	push   0x41f460
403d21:	ff 15 3c 72 40 00    	call   *0x40723c
403d27:	3b dd                	cmp    %ebp,%ebx
403d29:	74 03                	je     0x403d2e
403d2b:	55                   	push   %ebp
403d2c:	eb 02                	jmp    0x403d30
403d2e:	6a 01                	push   $0x1
403d30:	68 60 f0 00 00       	push   $0xf060
403d35:	55                   	push   %ebp
403d36:	57                   	push   %edi
403d37:	ff 15 7c 71 40 00    	call   *0x40717c
403d3d:	50                   	push   %eax
403d3e:	ff 15 78 71 40 00    	call   *0x407178
403d44:	8b 1d 44 72 40 00    	mov    0x407244,%ebx
403d4a:	6a 01                	push   $0x1
403d4c:	55                   	push   %ebp
403d4d:	68 f4 00 00 00       	push   $0xf4
403d52:	ff 74 24 38          	push   0x38(%esp)
403d56:	ff d3                	call   *%ebx
403d58:	39 2d 2c 3f 42 00    	cmp    %ebp,0x423f2c
403d5e:	74 13                	je     0x403d73
403d60:	55                   	push   %ebp
403d61:	6a 02                	push   $0x2
403d63:	68 01 04 00 00       	push   $0x401
403d68:	57                   	push   %edi
403d69:	ff d3                	call   *%ebx
403d6b:	ff 35 60 f4 41 00    	push   0x41f460
403d71:	eb 06                	jmp    0x403d79
403d73:	ff 35 98 04 42 00    	push   0x420498
403d79:	e8 cf 01 00 00       	call   0x403f4d
403d7e:	bb a0 04 42 00       	mov    $0x4204a0,%ebx
403d83:	68 a0 36 42 00       	push   $0x4236a0
403d88:	53                   	push   %ebx
403d89:	e8 d8 1d 00 00       	call   0x405b66
403d8e:	ff 76 18             	push   0x18(%esi)
403d91:	53                   	push   %ebx
403d92:	e8 e5 1d 00 00       	call   0x405b7c
403d97:	03 c3                	add    %ebx,%eax
403d99:	50                   	push   %eax
403d9a:	e8 e9 1d 00 00       	call   0x405b88
403d9f:	53                   	push   %ebx
403da0:	57                   	push   %edi
403da1:	ff 15 f4 71 40 00    	call   *0x4071f4
403da7:	55                   	push   %ebp
403da8:	ff 76 08             	push   0x8(%esi)
403dab:	e8 d9 d5 ff ff       	call   0x401389
403db0:	85 c0                	test   %eax,%eax
403db2:	0f 85 9d fe ff ff    	jne    0x403c55
403db8:	39 2e                	cmp    %ebp,(%esi)