40ade0:	ff 37                	push   (%edi)
40ade2:	68 81 00 1f 00       	push   $0x1f0081
40ade7:	6a 02                	push   $0x2
40ade9:	56                   	push   %esi
40adea:	ff 15 bc a3 43 00    	call   *0x43a3bc
40adf0:	85 c0                	test   %eax,%eax
40adf2:	74 13                	je     0x40ae07
40adf4:	6a 00                	push   $0x0
40adf6:	56                   	push   %esi
40adf7:	6a 01                	push   $0x1
40adf9:	8d 45 c4             	lea    -0x3c(%ebp),%eax
40adfc:	50                   	push   %eax
40adfd:	ff 15 d4 a3 43 00    	call   *0x43a3d4
40ae03:	85 c0                	test   %eax,%eax
40ae05:	75 1b                	jne    0x40ae22
40ae07:	ff 15 a8 a0 43 00    	call   *0x43a0a8
40ae0d:	8b d8                	mov    %eax,%ebx
40ae0f:	89 5d f0             	mov    %ebx,-0x10(%ebp)
40ae12:	85 db                	test   %ebx,%ebx
40ae14:	7e 0e                	jle    0x40ae24
40ae16:	0f b7 db             	movzwl %bx,%ebx
40ae19:	81 cb 00 00 07 80    	or     $0x80070000,%ebx
40ae1f:	89 5d f0             	mov    %ebx,-0x10(%ebp)
40ae22:	85 db                	test   %ebx,%ebx
40ae24:	78 7b                	js     0x40aea1
40ae26:	68 f4 8a 43 00       	push   $0x438af4
40ae2b:	6a 00                	push   $0x0
40ae2d:	8d 45 c4             	lea    -0x3c(%ebp),%eax
40ae30:	50                   	push   %eax
40ae31:	ff 15 d0 a3 43 00    	call   *0x43a3d0
40ae37:	85 c0                	test   %eax,%eax
40ae39:	75 5c                	jne    0x40ae97
40ae3b:	ff 15 a8 a0 43 00    	call   *0x43a0a8
40ae41:	83 f8 7a             	cmp    $0x7a,%eax
40ae44:	75 33                	jne    0x40ae79
40ae46:	ff 35 f4 8a 43 00    	push   0x438af4
40ae4c:	8b 1d 3c 1a 40 00    	mov    0x401a3c,%ebx
40ae52:	8b cb                	mov    %ebx,%ecx
40ae54:	ff 15 20 a5 43 00    	call   *0x43a520
40ae5a:	ff d3                	call   *%ebx
40ae5c:	a3 74 8a 43 00       	mov    %eax,0x438a74
40ae61:	85 c0                	test   %eax,%eax
40ae63:	74 2b                	je     0x40ae90
40ae65:	68 f4 8a 43 00       	push   $0x438af4
40ae6a:	50                   	push   %eax
40ae6b:	8d 45 c4             	lea    -0x3c(%ebp),%eax
40ae6e:	50                   	push   %eax
40ae6f:	ff 15 d0 a3 43 00    	call   *0x43a3d0
40ae75:	85 c0                	test   %eax,%eax
40ae77:	75 25                	jne    0x40ae9e
40ae79:	ff 15 a8 a0 43 00    	call   *0x43a0a8
40ae7f:	8b d8                	mov    %eax,%ebx
40ae81:	85 db                	test   %ebx,%ebx
40ae83:	7e 1c                	jle    0x40aea1
40ae85:	0f b7 db             	movzwl %bx,%ebx
40ae88:	81 cb 00 00 07 80    	or     $0x80070000,%ebx
40ae8e:	eb 11                	jmp    0x40aea1
40ae90:	bb 0e 00 07 80       	mov    $0x8007000e,%ebx
40ae95:	eb 0a                	jmp    0x40aea1
40ae97:	bb 05 40 00 80       	mov    $0x80004005,%ebx
40ae9c:	eb 03                	jmp    0x40aea1
40ae9e:	8b 5d f0             	mov    -0x10(%ebp),%ebx
40aea1:	85 f6                	test   %esi,%esi
40aea3:	74 15                	je     0x40aeba
40aea5:	c6 45 fc 04          	movb   $0x4,-0x4(%ebp)
40aea9:	56                   	push   %esi
40aeaa:	8b 35 40 1a 40 00    	mov    0x401a40,%esi
40aeb0:	8b ce                	mov    %esi,%ecx
40aeb2:	ff 15 20 a5 43 00    	call   *0x43a520
40aeb8:	ff d6                	call   *%esi
40aeba:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40aebd:	85 c0                	test   %eax,%eax
40aebf:	74 15                	je     0x40aed6
40aec1:	c6 45 fc 05          	movb   $0x5,-0x4(%ebp)
40aec5:	8b 35 40 1a 40 00    	mov    0x401a40,%esi
40aecb:	8b ce                	mov    %esi,%ecx
40aecd:	50                   	push   %eax
40aece:	ff 15 20 a5 43 00    	call   *0x43a520
40aed4:	ff d6                	call   *%esi
40aed6:	85 ff                	test   %edi,%edi
40aed8:	74 15                	je     0x40aeef
40aeda:	c6 45 fc 06          	movb   $0x6,-0x4(%ebp)
40aede:	8b 35 40 1a 40 00    	mov    0x401a40,%esi
40aee4:	8b ce                	mov    %esi,%ecx
40aee6:	57                   	push   %edi
40aee7:	ff 15 20 a5 43 00    	call   *0x43a520
40aeed:	ff d6                	call   *%esi
40aeef:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
40aef3:	8b 4d e8             	mov    -0x18(%ebp),%ecx
40aef6:	85 c9                	test   %ecx,%ecx
40aef8:	74 1c                	je     0x40af16
40aefa:	83 f9 ff             	cmp    $0xffffffff,%ecx
40aefd:	74 17                	je     0x40af16
40aeff:	89 4d d8             	mov    %ecx,-0x28(%ebp)
40af02:	8d 55 d8             	lea    -0x28(%ebp),%edx
40af05:	8b 0d 10 a1 43 00    	mov    0x43a110,%ecx
40af0b:	89 4d dc             	mov    %ecx,-0x24(%ebp)
40af0e:	8d 4d dc             	lea    -0x24(%ebp),%ecx
40af11:	e8 4e 07 01 00       	call   0x41b664
40af16:	8b c3                	mov    %ebx,%eax
40af18:	e8 bf fe 00 00       	call   0x41addc
40af1d:	c3                   	ret
40af1e:	8b ff                	mov    %edi,%edi
40af20:	55                   	push   %ebp
40af21:	8b ec                	mov    %esp,%ebp
40af23:	57                   	push   %edi
40af24:	8b b9 80 00 00 00    	mov    0x80(%ecx),%edi
40af2a:	85 ff                	test   %edi,%edi
40af2c:	78 21                	js     0x40af4f
40af2e:	8b 51 74             	mov    0x74(%ecx),%edx
40af31:	85 d2                	test   %edx,%edx
40af33:	74 21                	je     0x40af56
40af35:	8b 45 08             	mov    0x8(%ebp),%eax
40af38:	56                   	push   %esi
40af39:	89 10                	mov    %edx,(%eax)
40af3b:	8b 49 74             	mov    0x74(%ecx),%ecx
40af3e:	51                   	push   %ecx
40af3f:	8b 11                	mov    (%ecx),%edx
40af41:	8b 72 04             	mov    0x4(%edx),%esi
40af44:	8b ce                	mov    %esi,%ecx
40af46:	ff 15 20 a5 43 00    	call   *0x43a520
40af4c:	ff d6                	call   *%esi
40af4e:	5e                   	pop    %esi
40af4f:	8b c7                	mov    %edi,%eax
40af51:	5f                   	pop    %edi
40af52:	5d                   	pop    %ebp
40af53:	c2 04 00             	ret    $0x4
40af56:	bf 02 40 00 80       	mov    $0x80004002,%edi
40af5b:	eb f2                	jmp    0x40af4f
40af5d:	0f b7 01             	movzwl (%ecx),%eax
40af60:	83 f8 12             	cmp    $0x12,%eax
40af63:	0f 87 1e 89 01 00    	ja     0x423887
40af69:	74 2a                	je     0x40af95
40af6b:	48                   	dec    %eax
40af6c:	83 e8 01             	sub    $0x1,%eax
40af6f:	74 1e                	je     0x40af8f
40af71:	83 e8 01             	sub    $0x1,%eax
40af74:	0f 85 e4 88 01 00    	jne    0x42385e
40af7a:	8b 41 08             	mov    0x8(%ecx),%eax
40af7d:	99                   	cltd
40af7e:	56                   	push   %esi
40af7f:	6a 14                	push   $0x14
40af81:	5e                   	pop    %esi
40af82:	66 89 31             	mov    %si,(%ecx)
40af85:	89 41 08             	mov    %eax,0x8(%ecx)
40af88:	89 51 0c             	mov    %edx,0xc(%ecx)
40af8b:	5e                   	pop    %esi
40af8c:	33 c0                	xor    %eax,%eax
40af8e:	c3                   	ret
40af8f:	0f bf 41 08          	movswl 0x8(%ecx),%eax
40af93:	eb e8                	jmp    0x40af7d
40af95:	0f b7 41 08          	movzwl 0x8(%ecx),%eax
40af99:	eb e2                	jmp    0x40af7d
40af9b:	8b ff                	mov    %edi,%edi
40af9d:	55                   	push   %ebp
40af9e:	8b ec                	mov    %esp,%ebp
40afa0:	56                   	push   %esi
40afa1:	8b f1                	mov    %ecx,%esi
40afa3:	e8 47 0c 00 00       	call   0x40bbef
40afa8:	0f b7 86 a4 01 00 00 	movzwl 0x1a4(%esi),%eax
40afaf:	8d 4e 0c             	lea    0xc(%esi),%ecx
40afb2:	50                   	push   %eax
40afb3:	0f b7 86 a2 01 00 00 	movzwl 0x1a2(%esi),%eax
40afba:	50                   	push   %eax
40afbb:	ff 75 08             	push   0x8(%ebp)
40afbe:	e8 58 10 00 00       	call   0x40c01b
40afc3:	8b 45 08             	mov    0x8(%ebp),%eax
40afc6:	5e                   	pop    %esi
40afc7:	5d                   	pop    %ebp
40afc8:	c2 04 00             	ret    $0x4
40afcb:	cc                   	int3
40afcc:	cc                   	int3
40afcd:	cc                   	int3
40afce:	cc                   	int3
40afcf:	cc                   	int3
40afd0:	8b ff                	mov    %edi,%edi
40afd2:	55                   	push   %ebp
40afd3:	8b ec                	mov    %esp,%ebp
40afd5:	8d 41 10             	lea    0x10(%ecx),%eax
40afd8:	50                   	push   %eax
40afd9:	68 00 00 10 00       	push   $0x100000
40afde:	68 00 04 00 00       	push   $0x400
40afe3:	ff 75 08             	push   0x8(%ebp)
40afe6:	e8 81 99 00 00       	call   0x41496c
40afeb:	5d                   	pop    %ebp
40afec:	c2 04 00             	ret    $0x4
40afef:	68 1c 43 40 00       	push   $0x40431c
40aff4:	e8 68 0f 00 00       	call   0x40bf61
40aff9:	f7 d8                	neg    %eax
40affb:	1b c0                	sbb    %eax,%eax
40affd:	40                   	inc    %eax
40affe:	c2 04 00             	ret    $0x4
40b001:	cc                   	int3
40b002:	cc                   	int3
40b003:	cc                   	int3
40b004:	cc                   	int3
40b005:	cc                   	int3
40b006:	cc                   	int3
40b007:	cc                   	int3
40b008:	cc                   	int3
40b009:	cc                   	int3
40b00a:	cc                   	int3
40b00b:	cc                   	int3
40b00c:	cc                   	int3
40b00d:	cc                   	int3
40b00e:	cc                   	int3
40b00f:	cc                   	int3
40b010:	8b ff                	mov    %edi,%edi
40b012:	55                   	push   %ebp
40b013:	8b ec                	mov    %esp,%ebp
40b015:	56                   	push   %esi
40b016:	8b 75 08             	mov    0x8(%ebp),%esi
40b019:	57                   	push   %edi
40b01a:	8b f9                	mov    %ecx,%edi
40b01c:	3b 77 04             	cmp    0x4(%edi),%esi
40b01f:	73 28                	jae    0x40b049
40b021:	8b 47 08             	mov    0x8(%edi),%eax
40b024:	8b 17                	mov    (%edi),%edx
40b026:	03 d6                	add    %esi,%edx
40b028:	8b 40 04             	mov    0x4(%eax),%eax
40b02b:	8d 04 50             	lea    (%eax,%edx,2),%eax
40b02e:	0f b7 08             	movzwl (%eax),%ecx
40b031:	83 f9 2f             	cmp    $0x2f,%ecx
40b034:	74 0e                	je     0x40b044
40b036:	83 f9 5c             	cmp    $0x5c,%ecx
40b039:	74 09                	je     0x40b044
40b03b:	46                   	inc    %esi
40b03c:	83 c0 02             	add    $0x2,%eax
40b03f:	3b 77 04             	cmp    0x4(%edi),%esi
40b042:	72 ea                	jb     0x40b02e
40b044:	3b 77 04             	cmp    0x4(%edi),%esi
40b047:	72 03                	jb     0x40b04c
40b049:	83 ce ff             	or     $0xffffffff,%esi
40b04c:	5f                   	pop    %edi
40b04d:	8b c6                	mov    %esi,%eax
40b04f:	5e                   	pop    %esi
40b050:	5d                   	pop    %ebp
40b051:	c2 04 00             	ret    $0x4
40b054:	6a 08                	push   $0x8
40b056:	b8 00 e1 41 00       	mov    $0x41e100,%eax
40b05b:	e8 ae fd 00 00       	call   0x41ae0e
40b060:	8b fa                	mov    %edx,%edi
40b062:	8b d9                	mov    %ecx,%ebx
40b064:	83 23 00             	andl   $0x0,(%ebx)
40b067:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40b06b:	68 fc 4b 40 00       	push   $0x404bfc
40b070:	6a 58                	push   $0x58
40b072:	e8 04 fd 00 00       	call   0x41ad7b
40b077:	59                   	pop    %ecx
40b078:	59                   	pop    %ecx
40b079:	85 c0                	test   %eax,%eax
40b07b:	74 57                	je     0x40b0d4
40b07d:	8b c8                	mov    %eax,%ecx
40b07f:	e8 6b 02 00 00       	call   0x40b2ef
40b084:	8b f0                	mov    %eax,%esi
40b086:	ff 75 08             	push   0x8(%ebp)
40b089:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
40b08d:	8b ce                	mov    %esi,%ecx
40b08f:	ff 37                	push   (%edi)
40b091:	83 65 ec 00          	andl   $0x0,-0x14(%ebp)
40b095:	89 75 f0             	mov    %esi,-0x10(%ebp)
40b098:	e8 3e 00 00 00       	call   0x40b0db
40b09d:	8b f8                	mov    %eax,%edi
40b09f:	85 ff                	test   %edi,%edi
40b0a1:	78 1f                	js     0x40b0c2
40b0a3:	85 f6                	test   %esi,%esi
40b0a5:	74 17                	je     0x40b0be
40b0a7:	8b 06                	mov    (%esi),%eax
40b0a9:	56                   	push   %esi
40b0aa:	8b 78 04             	mov    0x4(%eax),%edi
40b0ad:	81 ff 60 f4 42 00    	cmp    $0x42f460,%edi
40b0b3:	0f 85 8c 4c 01 00    	jne    0x41fd45
40b0b9:	e8 a2 43 02 00       	call   0x42f460
40b0be:	89 33                	mov    %esi,(%ebx)
40b0c0:	33 ff                	xor    %edi,%edi
40b0c2:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40b0c5:	e8 ad 02 00 00       	call   0x40b377
40b0ca:	8b c7                	mov    %edi,%eax
40b0cc:	e8 0b fd 00 00       	call   0x41addc
40b0d1:	c2 04 00             	ret    $0x4
40b0d4:	bf 0e 00 07 80       	mov    $0x8007000e,%edi
40b0d9:	eb ef                	jmp    0x40b0ca
40b0db:	6a 08                	push   $0x8
40b0dd:	b8 1b e1 41 00       	mov    $0x41e11b,%eax
40b0e2:	e8 90 fd 00 00       	call   0x41ae77
40b0e7:	8b f9                	mov    %ecx,%edi
40b0e9:	ff 75 08             	push   0x8(%ebp)
40b0ec:	8d 5f 14             	lea    0x14(%edi),%ebx
40b0ef:	8b cb                	mov    %ebx,%ecx
40b0f1:	e8 3b 05 00 00       	call   0x40b631
40b0f6:	8d 77 18             	lea    0x18(%edi),%esi
40b0f9:	8b ce                	mov    %esi,%ecx
40b0fb:	e8 a1 ec 00 00       	call   0x419da1
40b100:	8b 03                	mov    (%ebx),%eax
40b102:	56                   	push   %esi
40b103:	68 f0 3e 40 00       	push   $0x403ef0
40b108:	50                   	push   %eax
40b109:	8b 08                	mov    (%eax),%ecx
40b10b:	8b 31                	mov    (%ecx),%esi
40b10d:	8b ce                	mov    %esi,%ecx
40b10f:	ff 15 20 a5 43 00    	call   *0x43a520
40b115:	ff d6                	call   *%esi
40b117:	8b f0                	mov    %eax,%esi
40b119:	85 f6                	test   %esi,%esi
40b11b:	0f 88 33 4c 01 00    	js     0x41fd54
40b121:	8d 47 1c             	lea    0x1c(%edi),%eax
40b124:	8b cb                	mov    %ebx,%ecx
40b126:	50                   	push   %eax
40b127:	e8 d5 04 00 00       	call   0x40b601
40b12c:	8b 4d 04             	mov    0x4(%ebp),%ecx
40b12f:	be f0 55 40 00       	mov    $0x4055f0,%esi
40b134:	85 c0                	test   %eax,%eax
40b136:	0f 88 30 4c 01 00    	js     0x41fd6c
40b13c:	8d 47 20             	lea    0x20(%edi),%eax
40b13f:	8b cb                	mov    %ebx,%ecx
40b141:	50                   	push   %eax
40b142:	e8 8a 04 00 00       	call   0x40b5d1
40b147:	8b 4d 04             	mov    0x4(%ebp),%ecx
40b14a:	85 c0                	test   %eax,%eax
40b14c:	0f 88 29 4c 01 00    	js     0x41fd7b
40b152:	6b 47 24 50          	imul   $0x50,0x24(%edi),%eax
40b156:	50                   	push   %eax
40b157:	ff 15 5c a0 43 00    	call   *0x43a05c
40b15d:	8b 4f 3c             	mov    0x3c(%edi),%ecx
40b160:	89 47 3c             	mov    %eax,0x3c(%edi)
40b163:	85 c9                	test   %ecx,%ecx
40b165:	0f 85 1f 4c 01 00    	jne    0x41fd8a
40b16b:	85 c0                	test   %eax,%eax
40b16d:	0f 84 26 4c 01 00    	je     0x41fd99
40b173:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40b176:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40b17a:	e8 32 04 00 00       	call   0x40b5b1
40b17f:	50                   	push   %eax
40b180:	ff 75 0c             	push   0xc(%ebp)
40b183:	8d 4f 40             	lea    0x40(%edi),%ecx
40b186:	e8 0a 00 00 00       	call   0x40b195
40b18b:	33 c0                	xor    %eax,%eax
40b18d:	e8 4a fc 00 00       	call   0x41addc
40b192:	c2 08 00             	ret    $0x8
40b195:	8b ff                	mov    %edi,%edi
40b197:	55                   	push   %ebp
40b198:	8b ec                	mov    %esp,%ebp
40b19a:	56                   	push   %esi
40b19b:	57                   	push   %edi
40b19c:	8b 7d 08             	mov    0x8(%ebp),%edi
40b19f:	8b f1                	mov    %ecx,%esi
40b1a1:	57                   	push   %edi
40b1a2:	e8 cc 03 00 00       	call   0x40b573
40b1a7:	84 c0                	test   %al,%al
40b1a9:	0f 85 24 4c 01 00    	jne    0x41fdd3