40dbc1:	8d 4b 04             	lea    0x4(%ebx),%ecx
40dbc4:	e8 f0 e7 ff ff       	call   0x40c3b9
40dbc9:	e9 13 fe ff ff       	jmp    0x40d9e1
40dbce:	8b 07                	mov    (%edi),%eax
40dbd0:	57                   	push   %edi
40dbd1:	8b 70 08             	mov    0x8(%eax),%esi
40dbd4:	8b ce                	mov    %esi,%ecx
40dbd6:	ff 15 20 a5 43 00    	call   *0x43a520
40dbdc:	ff d6                	call   *%esi
40dbde:	e9 4c fe ff ff       	jmp    0x40da2f
40dbe3:	8b ff                	mov    %edi,%edi
40dbe5:	55                   	push   %ebp
40dbe6:	8b ec                	mov    %esp,%ebp
40dbe8:	56                   	push   %esi
40dbe9:	8b f1                	mov    %ecx,%esi
40dbeb:	8b 46 04             	mov    0x4(%esi),%eax
40dbee:	8d 50 07             	lea    0x7(%eax),%edx
40dbf1:	83 e2 f8             	and    $0xfffffff8,%edx
40dbf4:	8b ca                	mov    %edx,%ecx
40dbf6:	2b c8                	sub    %eax,%ecx
40dbf8:	8b 46 08             	mov    0x8(%esi),%eax
40dbfb:	74 0a                	je     0x40dc07
40dbfd:	01 0e                	add    %ecx,(%esi)
40dbff:	2b c1                	sub    %ecx,%eax
40dc01:	89 46 08             	mov    %eax,0x8(%esi)
40dc04:	89 56 04             	mov    %edx,0x4(%esi)
40dc07:	83 f8 08             	cmp    $0x8,%eax
40dc0a:	72 21                	jb     0x40dc2d
40dc0c:	8b 16                	mov    (%esi),%edx
40dc0e:	8b 4d 08             	mov    0x8(%ebp),%ecx
40dc11:	8b 02                	mov    (%edx),%eax
40dc13:	89 01                	mov    %eax,(%ecx)
40dc15:	8b 42 04             	mov    0x4(%edx),%eax
40dc18:	89 41 04             	mov    %eax,0x4(%ecx)
40dc1b:	83 06 08             	addl   $0x8,(%esi)
40dc1e:	83 46 08 f8          	addl   $0xfffffff8,0x8(%esi)
40dc22:	83 46 04 08          	addl   $0x8,0x4(%esi)
40dc26:	33 c0                	xor    %eax,%eax
40dc28:	5e                   	pop    %esi
40dc29:	5d                   	pop    %ebp
40dc2a:	c2 04 00             	ret    $0x4
40dc2d:	b8 12 0d 04 80       	mov    $0x80040d12,%eax
40dc32:	eb f4                	jmp    0x40dc28
40dc34:	8b ff                	mov    %edi,%edi
40dc36:	55                   	push   %ebp
40dc37:	8b ec                	mov    %esp,%ebp
40dc39:	83 e4 f8             	and    $0xfffffff8,%esp
40dc3c:	83 ec 14             	sub    $0x14,%esp
40dc3f:	53                   	push   %ebx
40dc40:	56                   	push   %esi
40dc41:	8b f1                	mov    %ecx,%esi
40dc43:	57                   	push   %edi
40dc44:	8b 46 18             	mov    0x18(%esi),%eax
40dc47:	85 c0                	test   %eax,%eax
40dc49:	0f 85 0e 2b 01 00    	jne    0x42075d
40dc4f:	8b 7e 04             	mov    0x4(%esi),%edi
40dc52:	8b 5d 08             	mov    0x8(%ebp),%ebx
40dc55:	53                   	push   %ebx
40dc56:	81 ff b0 df 40 00    	cmp    $0x40dfb0,%edi
40dc5c:	0f 85 0e 2b 01 00    	jne    0x420770
40dc62:	e8 49 03 00 00       	call   0x40dfb0
40dc67:	33 d2                	xor    %edx,%edx
40dc69:	f7 76 0c             	divl   0xc(%esi)
40dc6c:	8b 46 24             	mov    0x24(%esi),%eax
40dc6f:	8b ca                	mov    %edx,%ecx
40dc71:	c1 e1 04             	shl    $0x4,%ecx
40dc74:	03 c1                	add    %ecx,%eax
40dc76:	89 4c 24 10          	mov    %ecx,0x10(%esp)
40dc7a:	83 64 24 1c 00       	andl   $0x0,0x1c(%esp)
40dc7f:	89 44 24 14          	mov    %eax,0x14(%esp)
40dc83:	89 44 24 18          	mov    %eax,0x18(%esp)
40dc87:	8d 4c 24 14          	lea    0x14(%esp),%ecx
40dc8b:	e8 88 02 00 00       	call   0x40df18
40dc90:	85 c0                	test   %eax,%eax
40dc92:	0f 85 e7 2a 01 00    	jne    0x42077f
40dc98:	ff 75 0c             	push   0xc(%ebp)
40dc9b:	8b 7e 24             	mov    0x24(%esi),%edi
40dc9e:	03 7c 24 14          	add    0x14(%esp),%edi
40dca2:	53                   	push   %ebx
40dca3:	e8 27 00 00 00       	call   0x40dccf
40dca8:	85 c0                	test   %eax,%eax
40dcaa:	74 14                	je     0x40dcc0
40dcac:	8b 57 08             	mov    0x8(%edi),%edx
40dcaf:	8b 0a                	mov    (%edx),%ecx
40dcb1:	89 08                	mov    %ecx,(%eax)
40dcb3:	89 02                	mov    %eax,(%edx)
40dcb5:	3b 57 08             	cmp    0x8(%edi),%edx
40dcb8:	75 03                	jne    0x40dcbd
40dcba:	89 47 08             	mov    %eax,0x8(%edi)
40dcbd:	ff 47 0c             	incl   0xc(%edi)
40dcc0:	ff 46 10             	incl   0x10(%esi)
40dcc3:	33 c0                	xor    %eax,%eax
40dcc5:	40                   	inc    %eax
40dcc6:	5f                   	pop    %edi
40dcc7:	5e                   	pop    %esi
40dcc8:	5b                   	pop    %ebx
40dcc9:	8b e5                	mov    %ebp,%esp
40dccb:	5d                   	pop    %ebp
40dccc:	c2 08 00             	ret    $0x8
40dccf:	8b ff                	mov    %edi,%edi
40dcd1:	55                   	push   %ebp
40dcd2:	8b ec                	mov    %esp,%ebp
40dcd4:	51                   	push   %ecx
40dcd5:	56                   	push   %esi
40dcd6:	8b 35 3c 1a 40 00    	mov    0x401a3c,%esi
40dcdc:	8b ce                	mov    %esi,%ecx
40dcde:	6a 0c                	push   $0xc
40dce0:	ff 15 20 a5 43 00    	call   *0x43a520
40dce6:	ff d6                	call   *%esi
40dce8:	89 45 fc             	mov    %eax,-0x4(%ebp)
40dceb:	85 c0                	test   %eax,%eax
40dced:	74 23                	je     0x40dd12
40dcef:	33 c9                	xor    %ecx,%ecx
40dcf1:	89 08                	mov    %ecx,(%eax)
40dcf3:	89 48 04             	mov    %ecx,0x4(%eax)
40dcf6:	89 48 08             	mov    %ecx,0x8(%eax)
40dcf9:	85 c0                	test   %eax,%eax
40dcfb:	0f 84 b3 2a 01 00    	je     0x4207b4
40dd01:	8b 4d 08             	mov    0x8(%ebp),%ecx
40dd04:	89 48 08             	mov    %ecx,0x8(%eax)
40dd07:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40dd0a:	89 48 04             	mov    %ecx,0x4(%eax)
40dd0d:	5e                   	pop    %esi
40dd0e:	c9                   	leave
40dd0f:	c2 08 00             	ret    $0x8
40dd12:	33 c0                	xor    %eax,%eax
40dd14:	eb e3                	jmp    0x40dcf9
40dd16:	8b ff                	mov    %edi,%edi
40dd18:	55                   	push   %ebp
40dd19:	8b ec                	mov    %esp,%ebp
40dd1b:	8b 55 08             	mov    0x8(%ebp),%edx
40dd1e:	85 d2                	test   %edx,%edx
40dd20:	74 23                	je     0x40dd45
40dd22:	56                   	push   %esi
40dd23:	8d 71 04             	lea    0x4(%ecx),%esi
40dd26:	57                   	push   %edi
40dd27:	89 16                	mov    %edx,(%esi)
40dd29:	8b 39                	mov    (%ecx),%edi
40dd2b:	3b fa                	cmp    %edx,%edi
40dd2d:	0f 85 99 2a 01 00    	jne    0x4207cc
40dd33:	8b c1                	mov    %ecx,%eax
40dd35:	89 36                	mov    %esi,(%esi)
40dd37:	2b c6                	sub    %esi,%eax
40dd39:	f7 d8                	neg    %eax
40dd3b:	5f                   	pop    %edi
40dd3c:	1b c0                	sbb    %eax,%eax
40dd3e:	23 c1                	and    %ecx,%eax
40dd40:	5e                   	pop    %esi
40dd41:	5d                   	pop    %ebp
40dd42:	c2 04 00             	ret    $0x4
40dd45:	33 c0                	xor    %eax,%eax
40dd47:	eb f8                	jmp    0x40dd41
40dd49:	8b ff                	mov    %edi,%edi
40dd4b:	55                   	push   %ebp
40dd4c:	8b ec                	mov    %esp,%ebp
40dd4e:	53                   	push   %ebx
40dd4f:	56                   	push   %esi
40dd50:	8b f1                	mov    %ecx,%esi
40dd52:	57                   	push   %edi
40dd53:	8b 7d 08             	mov    0x8(%ebp),%edi
40dd56:	57                   	push   %edi
40dd57:	8b 5e 04             	mov    0x4(%esi),%ebx
40dd5a:	81 fb b0 df 40 00    	cmp    $0x40dfb0,%ebx
40dd60:	0f 85 75 2a 01 00    	jne    0x4207db
40dd66:	e8 45 02 00 00       	call   0x40dfb0
40dd6b:	33 d2                	xor    %edx,%edx
40dd6d:	f7 76 0c             	divl   0xc(%esi)
40dd70:	57                   	push   %edi
40dd71:	c1 e2 04             	shl    $0x4,%edx
40dd74:	03 56 24             	add    0x24(%esi),%edx
40dd77:	8b ca                	mov    %edx,%ecx
40dd79:	e8 f9 03 00 00       	call   0x40e177
40dd7e:	85 c0                	test   %eax,%eax
40dd80:	74 03                	je     0x40dd85
40dd82:	ff 4e 10             	decl   0x10(%esi)
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)