41e850:	3b f7                	cmp    %edi,%esi
41e852:	76 ec                	jbe    0x41e840
41e854:	e9 4e ff ff ff       	jmp    0x41e7a7
41e859:	8b 7c 24 58          	mov    0x58(%esp),%edi
41e85d:	ff 74 24 5c          	push   0x5c(%esp)
41e861:	6a 00                	push   $0x0
41e863:	ff b4 24 04 01 00 00 	push   0x104(%esp)
41e86a:	ff 15 18 21 45 00    	call   *0x452118
41e870:	ff b4 24 84 00 00 00 	push   0x84(%esp)
41e877:	ff 15 10 21 45 00    	call   *0x452110
41e87d:	8d 8c 24 88 00 00 00 	lea    0x88(%esp),%ecx
41e884:	e8 17 6e ff ff       	call   0x4156a0
41e889:	8b c7                	mov    %edi,%eax
41e88b:	5f                   	pop    %edi
41e88c:	5e                   	pop    %esi
41e88d:	5b                   	pop    %ebx
41e88e:	8b e5                	mov    %ebp,%esp
41e890:	5d                   	pop    %ebp
41e891:	c2 08 00             	ret    $0x8
41e894:	cc                   	int3
41e895:	cc                   	int3
41e896:	cc                   	int3
41e897:	cc                   	int3
41e898:	cc                   	int3
41e899:	cc                   	int3
41e89a:	cc                   	int3
41e89b:	cc                   	int3
41e89c:	cc                   	int3
41e89d:	cc                   	int3
41e89e:	cc                   	int3
41e89f:	cc                   	int3
41e8a0:	8b ff                	mov    %edi,%edi
41e8a2:	55                   	push   %ebp
41e8a3:	8b ec                	mov    %esp,%ebp
41e8a5:	81 ec c8 06 00 00    	sub    $0x6c8,%esp
41e8ab:	a1 e4 f8 44 00       	mov    0x44f8e4,%eax
41e8b0:	33 c5                	xor    %ebp,%eax
41e8b2:	89 45 f8             	mov    %eax,-0x8(%ebp)
41e8b5:	53                   	push   %ebx
41e8b6:	33 c0                	xor    %eax,%eax
41e8b8:	89 95 5c f9 ff ff    	mov    %edx,-0x6a4(%ebp)
41e8be:	56                   	push   %esi
41e8bf:	8b f1                	mov    %ecx,%esi
41e8c1:	c7 85 60 f9 ff ff 00 	movl   $0x0,-0x6a0(%ebp)
41e8c8:	00 00 00
41e8cb:	57                   	push   %edi
41e8cc:	8d 95 60 f9 ff ff    	lea    -0x6a0(%ebp),%edx
41e8d2:	89 b5 6c f9 ff ff    	mov    %esi,-0x694(%ebp)
41e8d8:	c7 85 68 f9 ff ff 00 	movl   $0x0,-0x698(%ebp)
41e8df:	00 00 00
41e8e2:	c7 85 3c f9 ff ff 00 	movl   $0x0,-0x6c4(%ebp)
41e8e9:	00 00 00
41e8ec:	c7 85 40 f9 ff ff 00 	movl   $0x0,-0x6c0(%ebp)
41e8f3:	00 00 00
41e8f6:	89 85 64 f9 ff ff    	mov    %eax,-0x69c(%ebp)
41e8fc:	89 85 4c f9 ff ff    	mov    %eax,-0x6b4(%ebp)
41e902:	89 85 70 f9 ff ff    	mov    %eax,-0x690(%ebp)
41e908:	89 85 50 f9 ff ff    	mov    %eax,-0x6b0(%ebp)
41e90e:	e8 9d e1 01 00       	call   0x43cab0
41e913:	8b f8                	mov    %eax,%edi
41e915:	85 ff                	test   %edi,%edi
41e917:	0f 88 74 04 00 00    	js     0x41ed91
41e91d:	8b 9d 60 f9 ff ff    	mov    -0x6a0(%ebp),%ebx
41e923:	8d 8d 84 fd ff ff    	lea    -0x27c(%ebp),%ecx
41e929:	51                   	push   %ecx
41e92a:	56                   	push   %esi
41e92b:	8b 03                	mov    (%ebx),%eax
41e92d:	8b 70 14             	mov    0x14(%eax),%esi
41e930:	8b ce                	mov    %esi,%ecx
41e932:	ff 15 84 23 45 00    	call   *0x452384
41e938:	8b cb                	mov    %ebx,%ecx
41e93a:	ff d6                	call   *%esi
41e93c:	8b f8                	mov    %eax,%edi
41e93e:	85 ff                	test   %edi,%edi
41e940:	0f 88 4b 04 00 00    	js     0x41ed91
41e946:	6a 32                	push   $0x32
41e948:	8d 45 8c             	lea    -0x74(%ebp),%eax
41e94b:	50                   	push   %eax
41e94c:	8d 85 40 f9 ff ff    	lea    -0x6c0(%ebp),%eax
41e952:	50                   	push   %eax
41e953:	6a 00                	push   $0x0
41e955:	8d 85 3c f9 ff ff    	lea    -0x6c4(%ebp),%eax
41e95b:	50                   	push   %eax
41e95c:	68 04 01 00 00       	push   $0x104
41e961:	8d 85 7c fb ff ff    	lea    -0x484(%ebp),%eax
41e967:	50                   	push   %eax
41e968:	8d 85 84 fd ff ff    	lea    -0x27c(%ebp),%eax
41e96e:	50                   	push   %eax
41e96f:	ff 15 8c 20 45 00    	call   *0x45208c
41e975:	85 c0                	test   %eax,%eax
41e977:	75 22                	jne    0x41e99b
41e979:	8b 33                	mov    (%ebx),%esi
41e97b:	ff 15 6c 20 45 00    	call   *0x45206c
41e981:	8b 76 10             	mov    0x10(%esi),%esi
41e984:	8b ce                	mov    %esi,%ecx
41e986:	50                   	push   %eax
41e987:	ff 15 84 23 45 00    	call   *0x452384
41e98d:	8b cb                	mov    %ebx,%ecx
41e98f:	ff d6                	call   *%esi
41e991:	8b f8                	mov    %eax,%edi
41e993:	85 ff                	test   %edi,%edi
41e995:	0f 88 f6 03 00 00    	js     0x41ed91
41e99b:	8d 85 50 f9 ff ff    	lea    -0x6b0(%ebp),%eax
41e9a1:	50                   	push   %eax
41e9a2:	50                   	push   %eax
41e9a3:	8d 85 4c f9 ff ff    	lea    -0x6b4(%ebp),%eax
41e9a9:	50                   	push   %eax
41e9aa:	8d 85 70 f9 ff ff    	lea    -0x690(%ebp),%eax
41e9b0:	50                   	push   %eax
41e9b1:	8d 85 84 fd ff ff    	lea    -0x27c(%ebp),%eax
41e9b7:	50                   	push   %eax
41e9b8:	ff 15 a4 20 45 00    	call   *0x4520a4
41e9be:	85 c0                	test   %eax,%eax
41e9c0:	75 22                	jne    0x41e9e4
41e9c2:	8b 33                	mov    (%ebx),%esi
41e9c4:	ff 15 6c 20 45 00    	call   *0x45206c
41e9ca:	8b 76 10             	mov    0x10(%esi),%esi
41e9cd:	8b ce                	mov    %esi,%ecx
41e9cf:	50                   	push   %eax
41e9d0:	ff 15 84 23 45 00    	call   *0x452384
41e9d6:	8b cb                	mov    %ebx,%ecx
41e9d8:	ff d6                	call   *%esi
41e9da:	8b f8                	mov    %eax,%edi
41e9dc:	85 ff                	test   %edi,%edi
41e9de:	0f 88 ad 03 00 00    	js     0x41ed91
41e9e4:	8b 85 70 f9 ff ff    	mov    -0x690(%ebp),%eax
41e9ea:	0f af 85 4c f9 ff ff 	imul   -0x6b4(%ebp),%eax
41e9f1:	6a 0a                	push   $0xa
41e9f3:	68 64 da 40 00       	push   $0x40da64
41e9f8:	89 85 70 f9 ff ff    	mov    %eax,-0x690(%ebp)
41e9fe:	ff 15 74 23 45 00    	call   *0x452374
41ea04:	8b b5 6c f9 ff ff    	mov    -0x694(%ebp),%esi
41ea0a:	6a 0a                	push   $0xa
41ea0c:	56                   	push   %esi
41ea0d:	68 8c da 40 00       	push   $0x40da8c
41ea12:	ff 15 74 23 45 00    	call   *0x452374
41ea18:	8d 8d 7c fb ff ff    	lea    -0x484(%ebp),%ecx
41ea1e:	83 c4 14             	add    $0x14,%esp
41ea21:	8d 51 02             	lea    0x2(%ecx),%edx
41ea24:	66 8b 01             	mov    (%ecx),%ax
41ea27:	83 c1 02             	add    $0x2,%ecx
41ea2a:	66 85 c0             	test   %ax,%ax
41ea2d:	75 f5                	jne    0x41ea24
41ea2f:	2b ca                	sub    %edx,%ecx
41ea31:	8d 85 84 fd ff ff    	lea    -0x27c(%ebp),%eax
41ea37:	d1 f9                	sar    $1,%ecx
41ea39:	74 06                	je     0x41ea41
41ea3b:	8d 85 7c fb ff ff    	lea    -0x484(%ebp),%eax
41ea41:	6a 0a                	push   $0xa
41ea43:	50                   	push   %eax
41ea44:	68 b0 da 40 00       	push   $0x40dab0
41ea49:	ff 15 74 23 45 00    	call   *0x452374
41ea4f:	83 c4 0c             	add    $0xc,%esp
41ea52:	8d 45 8c             	lea    -0x74(%ebp),%eax
41ea55:	6a 0a                	push   $0xa
41ea57:	50                   	push   %eax
41ea58:	68 d8 da 40 00       	push   $0x40dad8
41ea5d:	ff 15 74 23 45 00    	call   *0x452374
41ea63:	83 c4 0c             	add    $0xc,%esp
41ea66:	6a 0a                	push   $0xa
41ea68:	ff b5 70 f9 ff ff    	push   -0x690(%ebp)
41ea6e:	68 00 db 40 00       	push   $0x40db00
41ea73:	ff 15 74 23 45 00    	call   *0x452374
41ea79:	83 c4 0c             	add    $0xc,%esp
41ea7c:	8d 45 8c             	lea    -0x74(%ebp),%eax
41ea7f:	68 38 db 40 00       	push   $0x40db38
41ea84:	50                   	push   %eax
41ea85:	ff 15 68 23 45 00    	call   *0x452368
41ea8b:	83 c4 08             	add    $0x8,%esp
41ea8e:	85 c0                	test   %eax,%eax
41ea90:	0f 85 14 01 00 00    	jne    0x41ebaa
41ea96:	56                   	push   %esi
41ea97:	8d 85 74 f9 ff ff    	lea    -0x68c(%ebp),%eax
41ea9d:	33 ff                	xor    %edi,%edi
41ea9f:	68 04 01 00 00       	push   $0x104
41eaa4:	50                   	push   %eax
41eaa5:	ff 15 d0 22 45 00    	call   *0x4522d0
41eaab:	83 c4 0c             	add    $0xc,%esp
41eaae:	8d 85 74 f9 ff ff    	lea    -0x68c(%ebp),%eax
41eab4:	68 f0 d5 40 00       	push   $0x40d5f0
41eab9:	68 04 01 00 00       	push   $0x104
41eabe:	50                   	push   %eax
41eabf:	ff 15 cc 22 45 00    	call   *0x4522cc
41eac5:	83 c4 0c             	add    $0xc,%esp
41eac8:	8d 85 74 f9 ff ff    	lea    -0x68c(%ebp),%eax
41eace:	57                   	push   %edi
41eacf:	57                   	push   %edi
41ead0:	6a 03                	push   $0x3
41ead2:	57                   	push   %edi
41ead3:	6a 01                	push   $0x1
41ead5:	68 80 00 00 00       	push   $0x80
41eada:	50                   	push   %eax
41eadb:	ff 15 ec 20 45 00    	call   *0x4520ec
41eae1:	8b f0                	mov    %eax,%esi
41eae3:	83 fe ff             	cmp    $0xffffffff,%esi
41eae6:	75 0a                	jne    0x41eaf2
41eae8:	ff 15 6c 20 45 00    	call   *0x45206c
41eaee:	8b f8                	mov    %eax,%edi
41eaf0:	eb 2f                	jmp    0x41eb21
41eaf2:	8d 85 54 f9 ff ff    	lea    -0x6ac(%ebp),%eax
41eaf8:	50                   	push   %eax
41eaf9:	56                   	push   %esi
41eafa:	ff 15 b0 20 45 00    	call   *0x4520b0
41eb00:	85 c0                	test   %eax,%eax
41eb02:	75 0a                	jne    0x41eb0e
41eb04:	ff 15 6c 20 45 00    	call   *0x45206c
41eb0a:	8b f8                	mov    %eax,%edi
41eb0c:	eb 0c                	jmp    0x41eb1a
41eb0e:	8b 85 54 f9 ff ff    	mov    -0x6ac(%ebp),%eax
41eb14:	89 85 64 f9 ff ff    	mov    %eax,-0x69c(%ebp)
41eb1a:	56                   	push   %esi
41eb1b:	ff 15 10 21 45 00    	call   *0x452110
41eb21:	8b 03                	mov    (%ebx),%eax
41eb23:	57                   	push   %edi
41eb24:	8b 70 10             	mov    0x10(%eax),%esi
41eb27:	8b ce                	mov    %esi,%ecx
41eb29:	ff 15 84 23 45 00    	call   *0x452384
41eb2f:	8b cb                	mov    %ebx,%ecx
41eb31:	ff d6                	call   *%esi
41eb33:	8b f8                	mov    %eax,%edi
41eb35:	81 ff ed f8 ff ff    	cmp    $0xfffff8ed,%edi
41eb3b:	75 05                	jne    0x41eb42
41eb3d:	83 ce ff             	or     $0xffffffff,%esi
41eb40:	eb 0e                	jmp    0x41eb50
41eb42:	85 ff                	test   %edi,%edi
41eb44:	0f 88 47 02 00 00    	js     0x41ed91
41eb4a:	8b b5 64 f9 ff ff    	mov    -0x69c(%ebp),%esi
41eb50:	68 44 db 40 00       	push   $0x40db44
41eb55:	ff 15 74 23 45 00    	call   *0x452374
41eb5b:	83 c4 04             	add    $0x4,%esp
41eb5e:	6a 0a                	push   $0xa
41eb60:	81 fe 00 28 00 00    	cmp    $0x2800,%esi
41eb66:	7c 1f                	jl     0x41eb87
41eb68:	8b c6                	mov    %esi,%eax
41eb6a:	99                   	cltd
41eb6b:	81 e2 ff 03 00 00    	and    $0x3ff,%edx
41eb71:	03 c2                	add    %edx,%eax
41eb73:	c1 f8 0a             	sar    $0xa,%eax
41eb76:	50                   	push   %eax
41eb77:	68 80 db 40 00       	push   $0x40db80
41eb7c:	ff 15 74 23 45 00    	call   *0x452374
41eb82:	83 c4 0c             	add    $0xc,%esp
41eb85:	eb 23                	jmp    0x41ebaa
41eb87:	85 f6                	test   %esi,%esi
41eb89:	78 11                	js     0x41eb9c
41eb8b:	56                   	push   %esi
41eb8c:	68 94 db 40 00       	push   $0x40db94
41eb91:	ff 15 74 23 45 00    	call   *0x452374
41eb97:	83 c4 0c             	add    $0xc,%esp
41eb9a:	eb 0e                	jmp    0x41ebaa
41eb9c:	68 ac db 40 00       	push   $0x40dbac
41eba1:	ff 15 74 23 45 00    	call   *0x452374
41eba7:	83 c4 08             	add    $0x8,%esp
41ebaa:	8d 45 8c             	lea    -0x74(%ebp),%eax
41ebad:	68 38 db 40 00       	push   $0x40db38
41ebb2:	50                   	push   %eax
41ebb3:	ff 15 68 23 45 00    	call   *0x452368
41ebb9:	83 c4 08             	add    $0x8,%esp
41ebbc:	85 c0                	test   %eax,%eax
41ebbe:	74 1a                	je     0x41ebda
41ebc0:	8d 45 8c             	lea    -0x74(%ebp),%eax
41ebc3:	68 b8 db 40 00       	push   $0x40dbb8
41ebc8:	50                   	push   %eax
41ebc9:	ff 15 68 23 45 00    	call   *0x452368
41ebcf:	83 c4 08             	add    $0x8,%esp
41ebd2:	85 c0                	test   %eax,%eax
41ebd4:	0f 85 b5 01 00 00    	jne    0x41ed8f
41ebda:	8d 85 84 fd ff ff    	lea    -0x27c(%ebp),%eax
41ebe0:	50                   	push   %eax
41ebe1:	ff 15 94 20 45 00    	call   *0x452094
41ebe7:	85 c0                	test   %eax,%eax
41ebe9:	74 3b                	je     0x41ec26
41ebeb:	83 f8 04             	cmp    $0x4,%eax
41ebee:	74 36                	je     0x41ec26
41ebf0:	ff 75 08             	push   0x8(%ebp)
41ebf3:	8b 95 70 f9 ff ff    	mov    -0x690(%ebp),%edx
41ebf9:	ff b5 5c f9 ff ff    	push   -0x6a4(%ebp)
41ebff:	8b 8d 6c f9 ff ff    	mov    -0x694(%ebp),%ecx
41ec05:	8b 33                	mov    (%ebx),%esi
41ec07:	e8 84 f2 ff ff       	call   0x41de90
41ec0c:	8b 76 10             	mov    0x10(%esi),%esi
41ec0f:	8b ce                	mov    %esi,%ecx
41ec11:	50                   	push   %eax
41ec12:	ff 15 84 23 45 00    	call   *0x452384
41ec18:	8b cb                	mov    %ebx,%ecx
41ec1a:	ff d6                	call   *%esi
41ec1c:	8b f8                	mov    %eax,%edi
41ec1e:	85 ff                	test   %edi,%edi
41ec20:	0f 88 6b 01 00 00    	js     0x41ed91
41ec26:	6a 00                	push   $0x0
41ec28:	c7 85 44 f9 ff ff 00 	movl   $0x0,-0x6bc(%ebp)
41ec2f:	00 00 00
41ec32:	8d 85 68 f9 ff ff    	lea    -0x698(%ebp),%eax
41ec38:	c7 85 48 f9 ff ff 00 	movl   $0x0,-0x6b8(%ebp)
41ec3f:	00 00 00
41ec42:	c7 85 54 f9 ff ff 00 	movl   $0x0,-0x6ac(%ebp)
41ec49:	00 00 00
41ec4c:	c7 85 58 f9 ff ff 00 	movl   $0x0,-0x6a8(%ebp)
41ec53:	00 00 00
41ec56:	8b 33                	mov    (%ebx),%esi
41ec58:	6a 01                	push   $0x1
41ec5a:	50                   	push   %eax
41ec5b:	ff b5 6c f9 ff ff    	push   -0x694(%ebp)
41ec61:	8b 76 64             	mov    0x64(%esi),%esi
41ec64:	8b ce                	mov    %esi,%ecx
41ec66:	ff 15 84 23 45 00    	call   *0x452384
41ec6c:	8b cb                	mov    %ebx,%ecx
41ec6e:	ff d6                	call   *%esi
41ec70:	8b f8                	mov    %eax,%edi
41ec72:	85 ff                	test   %edi,%edi
41ec74:	0f 88 17 01 00 00    	js     0x41ed91
41ec7a:	8b bd 68 f9 ff ff    	mov    -0x698(%ebp),%edi
41ec80:	8d 8d 54 f9 ff ff    	lea    -0x6ac(%ebp),%ecx
41ec86:	6a 00                	push   $0x0
41ec88:	51                   	push   %ecx
41ec89:	8b 07                	mov    (%edi),%eax
41ec8b:	8b 70 0c             	mov    0xc(%eax),%esi
41ec8e:	8b ce                	mov    %esi,%ecx
41ec90:	ff 15 84 23 45 00    	call   *0x452384
41ec96:	8b cf                	mov    %edi,%ecx
41ec98:	ff d6                	call   *%esi
41ec9a:	8b f8                	mov    %eax,%edi
41ec9c:	85 ff                	test   %edi,%edi
41ec9e:	0f 88 ed 00 00 00    	js     0x41ed91
41eca4:	8b bd 68 f9 ff ff    	mov    -0x698(%ebp),%edi
41ecaa:	8d 8d 44 f9 ff ff    	lea    -0x6bc(%ebp),%ecx
41ecb0:	6a 01                	push   $0x1
41ecb2:	51                   	push   %ecx
41ecb3:	8b 07                	mov    (%edi),%eax
41ecb5:	8b 70 0c             	mov    0xc(%eax),%esi
41ecb8:	8b ce                	mov    %esi,%ecx
41ecba:	ff 15 84 23 45 00    	call   *0x452384
41ecc0:	8b cf                	mov    %edi,%ecx
41ecc2:	ff d6                	call   *%esi
41ecc4:	8b f8                	mov    %eax,%edi
41ecc6:	85 ff                	test   %edi,%edi
41ecc8:	0f 88 c3 00 00 00    	js     0x41ed91
41ecce:	8b 95 54 f9 ff ff    	mov    -0x6ac(%ebp),%edx
41ecd4:	8b c2                	mov    %edx,%eax
41ecd6:	8b bd 44 f9 ff ff    	mov    -0x6bc(%ebp),%edi
41ecdc:	8b ca                	mov    %edx,%ecx
41ecde:	8b 9d 58 f9 ff ff    	mov    -0x6a8(%ebp),%ebx
41ece4:	2b c7                	sub    %edi,%eax
41ece6:	8b b5 48 f9 ff ff    	mov    -0x6b8(%ebp),%esi
41ecec:	89 85 64 f9 ff ff    	mov    %eax,-0x69c(%ebp)
41ecf2:	8b c3                	mov    %ebx,%eax
41ecf4:	1b c6                	sbb    %esi,%eax
41ecf6:	89 95 6c f9 ff ff    	mov    %edx,-0x694(%ebp)
41ecfc:	89 85 5c f9 ff ff    	mov    %eax,-0x6a4(%ebp)
41ed02:	8b c3                	mov    %ebx,%eax