40dd85:	5f                   	pop    %edi
40dd86:	5e                   	pop    %esi
40dd87:	5b                   	pop    %ebx
40dd88:	5d                   	pop    %ebp
40dd89:	c2 04 00             	ret    $0x4
40dd8c:	8b ff                	mov    %edi,%edi
40dd8e:	55                   	push   %ebp
40dd8f:	8b ec                	mov    %esp,%ebp
40dd91:	83 e4 f8             	and    $0xfffffff8,%esp
40dd94:	51                   	push   %ecx
40dd95:	53                   	push   %ebx
40dd96:	56                   	push   %esi
40dd97:	57                   	push   %edi
40dd98:	8b f9                	mov    %ecx,%edi
40dd9a:	8b 47 18             	mov    0x18(%edi),%eax
40dd9d:	85 c0                	test   %eax,%eax
40dd9f:	0f 85 45 2a 01 00    	jne    0x4207ea
40dda5:	8b 77 04             	mov    0x4(%edi),%esi
40dda8:	8b ce                	mov    %esi,%ecx
40ddaa:	8b 5d 08             	mov    0x8(%ebp),%ebx
40ddad:	53                   	push   %ebx
40ddae:	ff 15 20 a5 43 00    	call   *0x43a520
40ddb4:	ff d6                	call   *%esi
40ddb6:	33 d2                	xor    %edx,%edx
40ddb8:	8b 4f 24             	mov    0x24(%edi),%ecx
40ddbb:	f7 77 0c             	divl   0xc(%edi)
40ddbe:	53                   	push   %ebx
40ddbf:	8b f2                	mov    %edx,%esi
40ddc1:	c1 e6 04             	shl    $0x4,%esi
40ddc4:	03 ce                	add    %esi,%ecx
40ddc6:	e8 94 00 00 00       	call   0x40de5f
40ddcb:	85 c0                	test   %eax,%eax
40ddcd:	0f 85 2a 2a 01 00    	jne    0x4207fd
40ddd3:	8b 5f 24             	mov    0x24(%edi),%ebx
40ddd6:	03 de                	add    %esi,%ebx
40ddd8:	8b 35 3c 1a 40 00    	mov    0x401a3c,%esi
40ddde:	6a 0c                	push   $0xc
40dde0:	8b ce                	mov    %esi,%ecx
40dde2:	ff 15 20 a5 43 00    	call   *0x43a520
40dde8:	ff d6                	call   *%esi
40ddea:	8b d0                	mov    %eax,%edx
40ddec:	89 54 24 0c          	mov    %edx,0xc(%esp)
40ddf0:	85 d2                	test   %edx,%edx
40ddf2:	74 17                	je     0x40de0b
40ddf4:	33 c0                	xor    %eax,%eax
40ddf6:	89 02                	mov    %eax,(%edx)
40ddf8:	89 42 04             	mov    %eax,0x4(%edx)
40ddfb:	89 42 08             	mov    %eax,0x8(%edx)
40ddfe:	85 d2                	test   %edx,%edx
40de00:	0f 84 06 2a 01 00    	je     0x42080c
40de06:	e9 18 2a 01 00       	jmp    0x420823
40de0b:	33 d2                	xor    %edx,%edx
40de0d:	eb ef                	jmp    0x40ddfe
40de0f:	8b ff                	mov    %edi,%edi
40de11:	55                   	push   %ebp
40de12:	8b ec                	mov    %esp,%ebp
40de14:	56                   	push   %esi
40de15:	ff 75 08             	push   0x8(%ebp)
40de18:	8b 35 3c 1a 40 00    	mov    0x401a3c,%esi
40de1e:	8b ce                	mov    %esi,%ecx
40de20:	ff 15 20 a5 43 00    	call   *0x43a520
40de26:	ff d6                	call   *%esi
40de28:	5e                   	pop    %esi
40de29:	5d                   	pop    %ebp
40de2a:	c3                   	ret
40de2b:	8b ff                	mov    %edi,%edi
40de2d:	55                   	push   %ebp
40de2e:	8b ec                	mov    %esp,%ebp
40de30:	56                   	push   %esi
40de31:	57                   	push   %edi
40de32:	ff 75 08             	push   0x8(%ebp)
40de35:	8b f9                	mov    %ecx,%edi
40de37:	8b 77 08             	mov    0x8(%edi),%esi
40de3a:	8b ce                	mov    %esi,%ecx
40de3c:	ff 15 20 a5 43 00    	call   *0x43a520
40de42:	ff d6                	call   *%esi
40de44:	33 d2                	xor    %edx,%edx
40de46:	f7 77 0c             	divl   0xc(%edi)
40de49:	ff 75 08             	push   0x8(%ebp)
40de4c:	c1 e2 04             	shl    $0x4,%edx
40de4f:	03 57 24             	add    0x24(%edi),%edx
40de52:	8b ca                	mov    %edx,%ecx
40de54:	e8 42 00 00 00       	call   0x40de9b
40de59:	5f                   	pop    %edi
40de5a:	5e                   	pop    %esi
40de5b:	5d                   	pop    %ebp
40de5c:	c2 04 00             	ret    $0x4
40de5f:	8b ff                	mov    %edi,%edi
40de61:	55                   	push   %ebp
40de62:	8b ec                	mov    %esp,%ebp
40de64:	83 ec 0c             	sub    $0xc,%esp
40de67:	56                   	push   %esi
40de68:	33 f6                	xor    %esi,%esi
40de6a:	89 4d f4             	mov    %ecx,-0xc(%ebp)
40de6d:	89 4d f8             	mov    %ecx,-0x8(%ebp)
40de70:	89 75 fc             	mov    %esi,-0x4(%ebp)
40de73:	8d 4d f4             	lea    -0xc(%ebp),%ecx
40de76:	e8 9d 00 00 00       	call   0x40df18
40de7b:	85 c0                	test   %eax,%eax
40de7d:	0f 85 cf 29 01 00    	jne    0x420852
40de83:	8b c6                	mov    %esi,%eax
40de85:	5e                   	pop    %esi
40de86:	c9                   	leave
40de87:	c2 04 00             	ret    $0x4
40de8a:	ff 75 08             	push   0x8(%ebp)
40de8d:	e8 08 04 00 00       	call   0x40e29a
40de92:	85 c0                	test   %eax,%eax
40de94:	74 dd                	je     0x40de73
40de96:	33 f6                	xor    %esi,%esi
40de98:	46                   	inc    %esi
40de99:	eb e8                	jmp    0x40de83
40de9b:	8b ff                	mov    %edi,%edi
40de9d:	55                   	push   %ebp
40de9e:	8b ec                	mov    %esp,%ebp
40dea0:	83 ec 0c             	sub    $0xc,%esp
40dea3:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40dea7:	53                   	push   %ebx
40dea8:	8b 5d 08             	mov    0x8(%ebp),%ebx
40deab:	56                   	push   %esi
40deac:	57                   	push   %edi
40dead:	89 4d f4             	mov    %ecx,-0xc(%ebp)
40deb0:	89 4d f8             	mov    %ecx,-0x8(%ebp)
40deb3:	8d 4d f4             	lea    -0xc(%ebp),%ecx
40deb6:	e8 5d 00 00 00       	call   0x40df18
40debb:	85 c0                	test   %eax,%eax
40debd:	75 0c                	jne    0x40decb
40debf:	b8 08 8f 43 00       	mov    $0x438f08,%eax
40dec4:	5f                   	pop    %edi
40dec5:	5e                   	pop    %esi
40dec6:	5b                   	pop    %ebx
40dec7:	c9                   	leave
40dec8:	c2 04 00             	ret    $0x4
40decb:	8b 75 fc             	mov    -0x4(%ebp),%esi
40dece:	8b c6                	mov    %esi,%eax
40ded0:	f7 d8                	neg    %eax
40ded2:	1b c0                	sbb    %eax,%eax
40ded4:	23 45 f8             	and    -0x8(%ebp),%eax
40ded7:	74 34                	je     0x40df0d
40ded9:	8b 50 08             	mov    0x8(%eax),%edx
40dedc:	8b 7a 0c             	mov    0xc(%edx),%edi
40dedf:	3b 7b 04             	cmp    0x4(%ebx),%edi
40dee2:	75 cf                	jne    0x40deb3
40dee4:	8b 43 08             	mov    0x8(%ebx),%eax
40dee7:	8b 0b                	mov    (%ebx),%ecx
40dee9:	8b 52 04             	mov    0x4(%edx),%edx
40deec:	57                   	push   %edi
40deed:	8b 40 04             	mov    0x4(%eax),%eax
40def0:	57                   	push   %edi
40def1:	8d 04 48             	lea    (%eax,%ecx,2),%eax
40def4:	50                   	push   %eax
40def5:	57                   	push   %edi
40def6:	e8 cc e0 ff ff       	call   0x40bfc7
40defb:	85 c0                	test   %eax,%eax
40defd:	75 b4                	jne    0x40deb3
40deff:	f7 de                	neg    %esi
40df01:	1b f6                	sbb    %esi,%esi
40df03:	23 75 f8             	and    -0x8(%ebp),%esi
40df06:	74 09                	je     0x40df11
40df08:	8d 46 04             	lea    0x4(%esi),%eax
40df0b:	eb b7                	jmp    0x40dec4
40df0d:	33 d2                	xor    %edx,%edx
40df0f:	eb cb                	jmp    0x40dedc
40df11:	b8 0c 8f 43 00       	mov    $0x438f0c,%eax
40df16:	eb ac                	jmp    0x40dec4
40df18:	8b d1                	mov    %ecx,%edx
40df1a:	8b 02                	mov    (%edx),%eax
40df1c:	85 c0                	test   %eax,%eax
40df1e:	74 23                	je     0x40df43
40df20:	8b 4a 04             	mov    0x4(%edx),%ecx
40df23:	85 c9                	test   %ecx,%ecx
40df25:	74 14                	je     0x40df3b
40df27:	89 4a 08             	mov    %ecx,0x8(%edx)
40df2a:	83 c0 04             	add    $0x4,%eax
40df2d:	8b 09                	mov    (%ecx),%ecx
40df2f:	89 4a 04             	mov    %ecx,0x4(%edx)
40df32:	3b c8                	cmp    %eax,%ecx
40df34:	75 05                	jne    0x40df3b
40df36:	33 c9                	xor    %ecx,%ecx
40df38:	89 4a 04             	mov    %ecx,0x4(%edx)
40df3b:	33 c0                	xor    %eax,%eax
40df3d:	85 c9                	test   %ecx,%ecx
40df3f:	0f 95 c0             	setne  %al
40df42:	c3                   	ret
40df43:	33 c0                	xor    %eax,%eax
40df45:	c3                   	ret
40df46:	cc                   	int3
40df47:	cc                   	int3
40df48:	cc                   	int3
40df49:	cc                   	int3
40df4a:	cc                   	int3
40df4b:	cc                   	int3
40df4c:	cc                   	int3
40df4d:	cc                   	int3
40df4e:	cc                   	int3
40df4f:	cc                   	int3
40df50:	8b ff                	mov    %edi,%edi
40df52:	55                   	push   %ebp
40df53:	8b ec                	mov    %esp,%ebp
40df55:	51                   	push   %ecx
40df56:	51                   	push   %ecx
40df57:	a1 08 85 43 00       	mov    0x438508,%eax
40df5c:	33 c5                	xor    %ebp,%eax
40df5e:	89 45 fc             	mov    %eax,-0x4(%ebp)
40df61:	53                   	push   %ebx
40df62:	56                   	push   %esi
40df63:	57                   	push   %edi
40df64:	8b 7d 08             	mov    0x8(%ebp),%edi
40df67:	8b 47 04             	mov    0x4(%edi),%eax
40df6a:	89 45 f8             	mov    %eax,-0x8(%ebp)
40df6d:	8d 34 00             	lea    (%eax,%eax,1),%esi
40df70:	8b c6                	mov    %esi,%eax
40df72:	e8 89 00 01 00       	call   0x41e000
40df77:	8b 47 08             	mov    0x8(%edi),%eax
40df7a:	8b dc                	mov    %esp,%ebx
40df7c:	8b 0f                	mov    (%edi),%ecx
40df7e:	56                   	push   %esi
40df7f:	8b 40 04             	mov    0x4(%eax),%eax
40df82:	8d 04 48             	lea    (%eax,%ecx,2),%eax
40df85:	50                   	push   %eax
40df86:	53                   	push   %ebx
40df87:	e8 5a cf 00 00       	call   0x41aee6
40df8c:	8b 55 f8             	mov    -0x8(%ebp),%edx
40df8f:	83 c4 0c             	add    $0xc,%esp
40df92:	8b cb                	mov    %ebx,%ecx
40df94:	e8 27 01 00 00       	call   0x40e0c0
40df99:	8d 65 ec             	lea    -0x14(%ebp),%esp
40df9c:	5f                   	pop    %edi
40df9d:	5e                   	pop    %esi
40df9e:	5b                   	pop    %ebx
40df9f:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40dfa2:	33 cd                	xor    %ebp,%ecx
40dfa4:	e8 17 c8 00 00       	call   0x41a7c0
40dfa9:	c9                   	leave
40dfaa:	c2 04 00             	ret    $0x4
40dfad:	cc                   	int3
40dfae:	cc                   	int3
40dfaf:	cc                   	int3
40dfb0:	8b ff                	mov    %edi,%edi
40dfb2:	55                   	push   %ebp
40dfb3:	8b ec                	mov    %esp,%ebp
40dfb5:	83 ec 10             	sub    $0x10,%esp
40dfb8:	a1 08 85 43 00       	mov    0x438508,%eax
40dfbd:	33 c5                	xor    %ebp,%eax
40dfbf:	89 45 fc             	mov    %eax,-0x4(%ebp)
40dfc2:	53                   	push   %ebx
40dfc3:	56                   	push   %esi
40dfc4:	8b 75 08             	mov    0x8(%ebp),%esi
40dfc7:	b9 02 00 00 00       	mov    $0x2,%ecx
40dfcc:	57                   	push   %edi
40dfcd:	8b 46 0c             	mov    0xc(%esi),%eax
40dfd0:	89 45 f4             	mov    %eax,-0xc(%ebp)
40dfd3:	f7 e1                	mul    %ecx
40dfd5:	8b d8                	mov    %eax,%ebx
40dfd7:	85 d2                	test   %edx,%edx
40dfd9:	72 0f                	jb     0x40dfea
40dfdb:	0f 87 8b 28 01 00    	ja     0x42086c
40dfe1:	83 fb ff             	cmp    $0xffffffff,%ebx
40dfe4:	0f 87 82 28 01 00    	ja     0x42086c
40dfea:	e8 11 00 01 00       	call   0x41e000
40dfef:	8b fc                	mov    %esp,%edi
40dff1:	53                   	push   %ebx
40dff2:	ff 76 04             	push   0x4(%esi)
40dff5:	57                   	push   %edi
40dff6:	e8 eb ce 00 00       	call   0x41aee6
40dffb:	8b 55 f4             	mov    -0xc(%ebp),%edx
40dffe:	83 c4 0c             	add    $0xc,%esp
40e001:	8b cf                	mov    %edi,%ecx
40e003:	e8 b8 00 00 00       	call   0x40e0c0
40e008:	89 45 f4             	mov    %eax,-0xc(%ebp)
40e00b:	b9 02 00 00 00       	mov    $0x2,%ecx
40e010:	8b 46 60             	mov    0x60(%esi),%eax
40e013:	89 45 f8             	mov    %eax,-0x8(%ebp)
40e016:	f7 e1                	mul    %ecx
40e018:	8b d8                	mov    %eax,%ebx
40e01a:	85 d2                	test   %edx,%edx
40e01c:	72 0f                	jb     0x40e02d
40e01e:	0f 87 54 28 01 00    	ja     0x420878
40e024:	83 fb ff             	cmp    $0xffffffff,%ebx
40e027:	0f 87 4b 28 01 00    	ja     0x420878
40e02d:	8b c3                	mov    %ebx,%eax
40e02f:	e8 cc ff 00 00       	call   0x41e000
40e034:	8b fc                	mov    %esp,%edi
40e036:	53                   	push   %ebx
40e037:	ff 76 58             	push   0x58(%esi)
40e03a:	57                   	push   %edi
40e03b:	e8 a6 ce 00 00       	call   0x41aee6
40e040:	8b 55 f8             	mov    -0x8(%ebp),%edx
40e043:	83 c4 0c             	add    $0xc,%esp
40e046:	8b cf                	mov    %edi,%ecx
40e048:	e8 73 00 00 00       	call   0x40e0c0
40e04d:	89 45 f8             	mov    %eax,-0x8(%ebp)
40e050:	b9 02 00 00 00       	mov    $0x2,%ecx
40e055:	8b 86 b4 00 00 00    	mov    0xb4(%esi),%eax
40e05b:	89 45 f0             	mov    %eax,-0x10(%ebp)
40e05e:	f7 e1                	mul    %ecx
40e060:	8b d8                	mov    %eax,%ebx
40e062:	85 d2                	test   %edx,%edx
40e064:	72 07                	jb     0x40e06d
40e066:	77 4e                	ja     0x40e0b6
40e068:	83 fb ff             	cmp    $0xffffffff,%ebx
40e06b:	77 49                	ja     0x40e0b6
40e06d:	8b c3                	mov    %ebx,%eax
40e06f:	e8 8c ff 00 00       	call   0x41e000
40e074:	8b fc                	mov    %esp,%edi
40e076:	53                   	push   %ebx
40e077:	ff b6 ac 00 00 00    	push   0xac(%esi)
40e07d:	57                   	push   %edi
40e07e:	e8 63 ce 00 00       	call   0x41aee6
40e083:	8b 55 f0             	mov    -0x10(%ebp),%edx
40e086:	83 c4 0c             	add    $0xc,%esp
40e089:	8b cf                	mov    %edi,%ecx
40e08b:	e8 30 00 00 00       	call   0x40e0c0
40e090:	8b c8                	mov    %eax,%ecx
40e092:	8b 86 3c 02 00 00    	mov    0x23c(%esi),%eax
40e098:	33 c1                	xor    %ecx,%eax
40e09a:	33 45 f8             	xor    -0x8(%ebp),%eax
40e09d:	33 45 f4             	xor    -0xc(%ebp),%eax
40e0a0:	8d 65 e4             	lea    -0x1c(%ebp),%esp
40e0a3:	5f                   	pop    %edi
40e0a4:	5e                   	pop    %esi
40e0a5:	5b                   	pop    %ebx
40e0a6:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40e0a9:	33 cd                	xor    %ebp,%ecx
40e0ab:	e8 10 c7 00 00       	call   0x41a7c0
40e0b0:	8b e5                	mov    %ebp,%esp
40e0b2:	5d                   	pop    %ebp
40e0b3:	c2 04 00             	ret    $0x4
40e0b6:	33 c9                	xor    %ecx,%ecx
40e0b8:	eb d8                	jmp    0x40e092
40e0ba:	cc                   	int3
40e0bb:	cc                   	int3
40e0bc:	cc                   	int3
40e0bd:	cc                   	int3
40e0be:	cc                   	int3
40e0bf:	cc                   	int3
40e0c0:	8b ff                	mov    %edi,%edi
40e0c2:	56                   	push   %esi
40e0c3:	57                   	push   %edi
40e0c4:	8b f2                	mov    %edx,%esi
40e0c6:	8b f9                	mov    %ecx,%edi
40e0c8:	56                   	push   %esi
40e0c9:	57                   	push   %edi
40e0ca:	56                   	push   %esi
40e0cb:	57                   	push   %edi
40e0cc:	68 00 02 00 00       	push   $0x200
40e0d1:	68 00 08 00 00       	push   $0x800
40e0d6:	ff 15 9c a1 43 00    	call   *0x43a19c
40e0dc:	3b c6                	cmp    %esi,%eax
40e0de:	0f 85 a0 27 01 00    	jne    0x420884
40e0e4:	85 f6                	test   %esi,%esi