43edb9:	66 83 38 3b          	cmpw   $0x3b,(%eax)
43edbd:	74 13                	je     0x43edd2
43edbf:	8d 44 24 10          	lea    0x10(%esp),%eax
43edc3:	50                   	push   %eax
43edc4:	8d 44 24 4c          	lea    0x4c(%esp),%eax
43edc8:	50                   	push   %eax
43edc9:	e8 ff 41 fe ff       	call   0x422fcd
43edce:	59                   	pop    %ecx
43edcf:	59                   	pop    %ecx
43edd0:	eb 73                	jmp    0x43ee45
43edd2:	8d 44 24 48          	lea    0x48(%esp),%eax
43edd6:	50                   	push   %eax
43edd7:	e8 60 40 fe ff       	call   0x422e3c
43eddc:	59                   	pop    %ecx
43eddd:	85 c0                	test   %eax,%eax
43eddf:	74 24                	je     0x43ee05
43ede1:	8d 44 24 48          	lea    0x48(%esp),%eax
43ede5:	50                   	push   %eax
43ede6:	e8 51 40 fe ff       	call   0x422e3c
43edeb:	59                   	pop    %ecx
43edec:	66 83 7c 44 46 5c    	cmpw   $0x5c,0x46(%esp,%eax,2)
43edf2:	74 11                	je     0x43ee05
43edf4:	8d 44 24 48          	lea    0x48(%esp),%eax
43edf8:	68 c0 fa 48 00       	push   $0x48fac0
43edfd:	50                   	push   %eax
43edfe:	e8 ca 41 fe ff       	call   0x422fcd
43ee03:	59                   	pop    %ecx
43ee04:	59                   	pop    %ecx
43ee05:	8d 44 24 48          	lea    0x48(%esp),%eax
43ee09:	50                   	push   %eax
43ee0a:	8d 4c 24 3c          	lea    0x3c(%esp),%ecx
43ee0e:	e8 2e 91 fc ff       	call   0x407f41
43ee13:	8d 44 24 38          	lea    0x38(%esp),%eax
43ee17:	b9 c8 72 4c 00       	mov    $0x4c72c8,%ecx
43ee1c:	50                   	push   %eax
43ee1d:	e8 62 51 fc ff       	call   0x403f84
43ee22:	8d 4c 24 38          	lea    0x38(%esp),%ecx
43ee26:	e8 39 6c fc ff       	call   0x405a64
43ee2b:	33 c0                	xor    %eax,%eax
43ee2d:	8d 4c 24 18          	lea    0x18(%esp),%ecx
43ee31:	56                   	push   %esi
43ee32:	66 89 44 24 4c       	mov    %ax,0x4c(%esp)
43ee37:	e8 16 8d fc ff       	call   0x407b52
43ee3c:	66 39 38             	cmp    %di,(%eax)
43ee3f:	0f 84 d1 84 fc ff    	je     0x407316
43ee45:	46                   	inc    %esi
43ee46:	e9 3c ff ff ff       	jmp    0x43ed87
43ee4b:	33 c0                	xor    %eax,%eax
43ee4d:	66 89 85 a8 ff fe ff 	mov    %ax,-0x10058(%ebp)
43ee54:	8b 45 14             	mov    0x14(%ebp),%eax
43ee57:	6a 58                	push   $0x58
43ee59:	6a 00                	push   $0x0
43ee5b:	c6 00 01             	movb   $0x1,(%eax)
43ee5e:	8d 45 a8             	lea    -0x58(%ebp),%eax
43ee61:	50                   	push   %eax
43ee62:	e8 b9 41 fe ff       	call   0x423020
43ee67:	83 65 ac 00          	andl   $0x0,-0x54(%ebp)
43ee6b:	8d 85 a8 ff fe ff    	lea    -0x10058(%ebp),%eax
43ee71:	83 c4 0c             	add    $0xc,%esp
43ee74:	89 45 c4             	mov    %eax,-0x3c(%ebp)
43ee77:	8d 45 a8             	lea    -0x58(%ebp),%eax
43ee7a:	c7 45 a8 58 00 00 00 	movl   $0x58,-0x58(%ebp)
43ee81:	c7 45 d8 18 9f 4b 00 	movl   $0x4b9f18,-0x28(%ebp)
43ee88:	c7 45 c8 ff 7f 00 00 	movl   $0x7fff,-0x38(%ebp)
43ee8f:	50                   	push   %eax
43ee90:	c7 45 b4 38 9f 4b 00 	movl   $0x4b9f38,-0x4c(%ebp)
43ee97:	c7 45 c0 01 00 00 00 	movl   $0x1,-0x40(%ebp)
43ee9e:	c7 45 dc 04 18 00 00 	movl   $0x1804,-0x24(%ebp)
43eea5:	c7 45 e4 c0 9f 4b 00 	movl   $0x4b9fc0,-0x1c(%ebp)
43eeac:	ff 15 b8 f0 48 00    	call   *0x48f0b8
43eeb2:	85 c0                	test   %eax,%eax
43eeb4:	75 07                	jne    0x43eebd
43eeb6:	32 c0                	xor    %al,%al
43eeb8:	e9 76 85 fc ff       	jmp    0x407433
43eebd:	8d 85 a8 ff fe ff    	lea    -0x10058(%ebp),%eax
43eec3:	8b ce                	mov    %esi,%ecx
43eec5:	50                   	push   %eax
43eec6:	e8 61 8e fc ff       	call   0x407d2c
43eecb:	e9 3b 85 fc ff       	jmp    0x40740b
43eed0:	8b 47 54             	mov    0x54(%edi),%eax
43eed3:	8b 04 98             	mov    (%eax,%ebx,4),%eax
43eed6:	8b 08                	mov    (%eax),%ecx
43eed8:	85 c9                	test   %ecx,%ecx
43eeda:	74 06                	je     0x43eee2
43eedc:	8b 01                	mov    (%ecx),%eax
43eede:	6a 01                	push   $0x1
43eee0:	ff 10                	call   *(%eax)
43eee2:	43                   	inc    %ebx
43eee3:	3b 5f 58             	cmp    0x58(%edi),%ebx
43eee6:	72 e8                	jb     0x43eed0
43eee8:	e9 bd 85 fc ff       	jmp    0x4074aa
43eeed:	ff 76 04             	push   0x4(%esi)
43eef0:	e8 77 21 fe ff       	call   0x42106c
43eef5:	59                   	pop    %ecx
43eef6:	e9 14 86 fc ff       	jmp    0x40750f
43eefb:	8b 03                	mov    (%ebx),%eax
43eefd:	89 07                	mov    %eax,(%edi)
43eeff:	8b 43 04             	mov    0x4(%ebx),%eax
43ef02:	89 47 04             	mov    %eax,0x4(%edi)
43ef05:	e9 62 86 fc ff       	jmp    0x40756c
43ef0a:	8b 03                	mov    (%ebx),%eax
43ef0c:	89 06                	mov    %eax,(%esi)
43ef0e:	8b 43 04             	mov    0x4(%ebx),%eax
43ef11:	89 46 04             	mov    %eax,0x4(%esi)
43ef14:	e9 b1 87 fc ff       	jmp    0x4076ca
43ef19:	e8 58 88 fc ff       	call   0x407776
43ef1e:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
43ef22:	74 07                	je     0x43ef2b
43ef24:	56                   	push   %esi
43ef25:	e8 42 21 fe ff       	call   0x42106c
43ef2a:	59                   	pop    %ecx
43ef2b:	8b c6                	mov    %esi,%eax
43ef2d:	e9 90 88 fc ff       	jmp    0x4077c2
43ef32:	48                   	dec    %eax
43ef33:	89 01                	mov    %eax,(%ecx)
43ef35:	8b cf                	mov    %edi,%ecx
43ef37:	e8 4d 92 fc ff       	call   0x408189
43ef3c:	8d 46 01             	lea    0x1(%esi),%eax
43ef3f:	50                   	push   %eax
43ef40:	e8 2b 92 fc ff       	call   0x408170
43ef45:	33 c9                	xor    %ecx,%ecx
43ef47:	89 47 08             	mov    %eax,0x8(%edi)
43ef4a:	6a 02                	push   $0x2
43ef4c:	5a                   	pop    %edx
43ef4d:	f7 e2                	mul    %edx
43ef4f:	0f 90 c1             	seto   %cl
43ef52:	f7 d9                	neg    %ecx
43ef54:	0b c8                	or     %eax,%ecx
43ef56:	51                   	push   %ecx
43ef57:	e8 9a 20 fe ff       	call   0x420ff6
43ef5c:	59                   	pop    %ecx
43ef5d:	89 07                	mov    %eax,(%edi)
43ef5f:	e9 84 8a fc ff       	jmp    0x4079e8
43ef64:	56                   	push   %esi
43ef65:	8b 75 0c             	mov    0xc(%ebp),%esi
43ef68:	33 ff                	xor    %edi,%edi
43ef6a:	8b cf                	mov    %edi,%ecx
43ef6c:	3b 75 14             	cmp    0x14(%ebp),%esi
43ef6f:	77 03                	ja     0x43ef74
43ef71:	8b 75 14             	mov    0x14(%ebp),%esi
43ef74:	85 f6                	test   %esi,%esi
43ef76:	74 3c                	je     0x43efb4
43ef78:	8b 45 08             	mov    0x8(%ebp),%eax
43ef7b:	53                   	push   %ebx
43ef7c:	8b 5d 10             	mov    0x10(%ebp),%ebx
43ef7f:	2b c3                	sub    %ebx,%eax
43ef81:	89 45 14             	mov    %eax,0x14(%ebp)
43ef84:	0f b7 14 18          	movzwl (%eax,%ebx,1),%edx
43ef88:	4e                   	dec    %esi
43ef89:	66 3b 13             	cmp    (%ebx),%dx
43ef8c:	74 1e                	je     0x43efac
43ef8e:	52                   	push   %edx
43ef8f:	e8 34 5f fe ff       	call   0x424ec8
43ef94:	0f b7 f8             	movzwl %ax,%edi
43ef97:	0f b7 03             	movzwl (%ebx),%eax
43ef9a:	50                   	push   %eax
43ef9b:	e8 28 5f fe ff       	call   0x424ec8
43efa0:	59                   	pop    %ecx
43efa1:	59                   	pop    %ecx
43efa2:	0f b7 c8             	movzwl %ax,%ecx
43efa5:	3b f9                	cmp    %ecx,%edi
43efa7:	75 0a                	jne    0x43efb3
43efa9:	8b 45 14             	mov    0x14(%ebp),%eax
43efac:	83 c3 02             	add    $0x2,%ebx
43efaf:	85 f6                	test   %esi,%esi
43efb1:	75 d1                	jne    0x43ef84
43efb3:	5b                   	pop    %ebx
43efb4:	2b f9                	sub    %ecx,%edi
43efb6:	5e                   	pop    %esi
43efb7:	79 08                	jns    0x43efc1
43efb9:	83 c8 ff             	or     $0xffffffff,%eax
43efbc:	e9 97 8a fc ff       	jmp    0x407a58
43efc1:	33 c0                	xor    %eax,%eax
43efc3:	85 ff                	test   %edi,%edi
43efc5:	0f 9f c0             	setg   %al
43efc8:	e9 8b 8a fc ff       	jmp    0x407a58
43efcd:	48                   	dec    %eax
43efce:	89 01                	mov    %eax,(%ecx)
43efd0:	8b cf                	mov    %edi,%ecx
43efd2:	e8 b2 91 fc ff       	call   0x408189
43efd7:	8b 47 04             	mov    0x4(%edi),%eax
43efda:	6a 02                	push   $0x2
43efdc:	5e                   	pop    %esi
43efdd:	03 c6                	add    %esi,%eax
43efdf:	50                   	push   %eax
43efe0:	e8 8b 91 fc ff       	call   0x408170
43efe5:	33 c9                	xor    %ecx,%ecx
43efe7:	89 47 08             	mov    %eax,0x8(%edi)
43efea:	f7 e6                	mul    %esi
43efec:	0f 90 c1             	seto   %cl
43efef:	f7 d9                	neg    %ecx
43eff1:	0b c8                	or     %eax,%ecx
43eff3:	51                   	push   %ecx
43eff4:	e8 fd 1f fe ff       	call   0x420ff6
43eff9:	8b 4f 04             	mov    0x4(%edi),%ecx
43effc:	8b f0                	mov    %eax,%esi
43effe:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
43f005:	51                   	push   %ecx
43f006:	ff 37                	push   (%edi)
43f008:	56                   	push   %esi
43f009:	e8 72 20 fe ff       	call   0x421080
43f00e:	e9 06 8b fc ff       	jmp    0x407b19
43f013:	3d 00 00 00 02       	cmp    $0x2000000,%eax
43f018:	73 1e                	jae    0x43f038
43f01a:	89 45 fc             	mov    %eax,-0x4(%ebp)
43f01d:	db 45 fc             	fildl  -0x4(%ebp)
43f020:	85 c0                	test   %eax,%eax
43f022:	79 06                	jns    0x43f02a
43f024:	dc 05 c8 ba 4b 00    	faddl  0x4bbac8
43f02a:	dd 5d f8             	fstpl  -0x8(%ebp)
43f02d:	dd 45 f8             	fldl   -0x8(%ebp)
43f030:	dc 0d 10 6f 4b 00    	fmull  0x4b6f10
43f036:	eb 41                	jmp    0x43f079
43f038:	3d 00 00 00 08       	cmp    $0x8000000,%eax
43f03d:	73 1e                	jae    0x43f05d
43f03f:	89 45 fc             	mov    %eax,-0x4(%ebp)
43f042:	db 45 fc             	fildl  -0x4(%ebp)
43f045:	85 c0                	test   %eax,%eax
43f047:	79 06                	jns    0x43f04f
43f049:	dc 05 c8 ba 4b 00    	faddl  0x4bbac8
43f04f:	dd 5d f8             	fstpl  -0x8(%ebp)
43f052:	dd 45 f8             	fldl   -0x8(%ebp)
43f055:	dc 0d 08 6f 4b 00    	fmull  0x4b6f08
43f05b:	eb 1c                	jmp    0x43f079
43f05d:	89 45 fc             	mov    %eax,-0x4(%ebp)
43f060:	db 45 fc             	fildl  -0x4(%ebp)
43f063:	85 c0                	test   %eax,%eax
43f065:	79 06                	jns    0x43f06d
43f067:	dc 05 c8 ba 4b 00    	faddl  0x4bbac8
43f06d:	dd 5d f8             	fstpl  -0x8(%ebp)
43f070:	dd 45 f8             	fldl   -0x8(%ebp)
43f073:	dc 0d 00 6f 4b 00    	fmull  0x4b6f00
43f079:	e8 88 c5 ff ff       	call   0x43b606
43f07e:	e9 57 8a fc ff       	jmp    0x407ada
43f083:	8d 04 19             	lea    (%ecx,%ebx,1),%eax
43f086:	3b 42 04             	cmp    0x4(%edx),%eax
43f089:	0f 86 49 8b fc ff    	jbe    0x407bd8
43f08f:	e9 3f 8b fc ff       	jmp    0x407bd3
43f094:	56                   	push   %esi
43f095:	8d 45 ec             	lea    -0x14(%ebp),%eax
43f098:	50                   	push   %eax
43f099:	e8 85 90 01 00       	call   0x458123
43f09e:	50                   	push   %eax
43f09f:	8b ce                	mov    %esi,%ecx
43f0a1:	e8 01 91 fc ff       	call   0x4081a7
43f0a6:	8d 4d ec             	lea    -0x14(%ebp),%ecx
43f0a9:	e8 b6 69 fc ff       	call   0x405a64
43f0ae:	8b c6                	mov    %esi,%eax
43f0b0:	e9 f7 8b fc ff       	jmp    0x407cac
43f0b5:	3d 00 00 00 02       	cmp    $0x2000000,%eax
43f0ba:	73 1e                	jae    0x43f0da
43f0bc:	89 45 08             	mov    %eax,0x8(%ebp)
43f0bf:	db 45 08             	fildl  0x8(%ebp)
43f0c2:	85 c0                	test   %eax,%eax
43f0c4:	79 06                	jns    0x43f0cc
43f0c6:	dc 05 c8 ba 4b 00    	faddl  0x4bbac8
43f0cc:	dd 5d f8             	fstpl  -0x8(%ebp)
43f0cf:	dd 45 f8             	fldl   -0x8(%ebp)
43f0d2:	dc 0d 10 6f 4b 00    	fmull  0x4b6f10
43f0d8:	eb 41                	jmp    0x43f11b
43f0da:	3d 00 00 00 08       	cmp    $0x8000000,%eax
43f0df:	73 1e                	jae    0x43f0ff
43f0e1:	89 45 08             	mov    %eax,0x8(%ebp)
43f0e4:	db 45 08             	fildl  0x8(%ebp)
43f0e7:	85 c0                	test   %eax,%eax
43f0e9:	79 06                	jns    0x43f0f1
43f0eb:	dc 05 c8 ba 4b 00    	faddl  0x4bbac8
43f0f1:	dd 5d f8             	fstpl  -0x8(%ebp)
43f0f4:	dd 45 f8             	fldl   -0x8(%ebp)
43f0f7:	dc 0d 08 6f 4b 00    	fmull  0x4b6f08
43f0fd:	eb 1c                	jmp    0x43f11b
43f0ff:	89 45 08             	mov    %eax,0x8(%ebp)
43f102:	db 45 08             	fildl  0x8(%ebp)
43f105:	85 c0                	test   %eax,%eax
43f107:	79 06                	jns    0x43f10f
43f109:	dc 05 c8 ba 4b 00    	faddl  0x4bbac8
43f10f:	dd 5d f8             	fstpl  -0x8(%ebp)
43f112:	dd 45 f8             	fldl   -0x8(%ebp)
43f115:	dc 0d 00 6f 4b 00    	fmull  0x4b6f00
43f11b:	e8 e6 c4 ff ff       	call   0x43b606
43f120:	e9 b3 8b fc ff       	jmp    0x407cd8
43f125:	49                   	dec    %ecx
43f126:	89 08                	mov    %ecx,(%eax)
43f128:	8b cf                	mov    %edi,%ecx
43f12a:	56                   	push   %esi
43f12b:	e8 59 90 fc ff       	call   0x408189
43f130:	8b 47 04             	mov    0x4(%edi),%eax
43f133:	40                   	inc    %eax
43f134:	03 c3                	add    %ebx,%eax
43f136:	50                   	push   %eax
43f137:	e8 34 90 fc ff       	call   0x408170
43f13c:	33 c9                	xor    %ecx,%ecx
43f13e:	89 47 08             	mov    %eax,0x8(%edi)
43f141:	6a 02                	push   $0x2
43f143:	5a                   	pop    %edx
43f144:	f7 e2                	mul    %edx
43f146:	0f 90 c1             	seto   %cl
43f149:	f7 d9                	neg    %ecx
43f14b:	0b c8                	or     %eax,%ecx
43f14d:	51                   	push   %ecx
43f14e:	e8 52 1e fe ff       	call   0x420fa5
43f153:	8b 4f 04             	mov    0x4(%edi),%ecx
43f156:	8b f0                	mov    %eax,%esi
43f158:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
43f15f:	51                   	push   %ecx
43f160:	ff 37                	push   (%edi)
43f162:	56                   	push   %esi
43f163:	e8 18 1f fe ff       	call   0x421080
43f168:	83 c4 10             	add    $0x10,%esp
43f16b:	89 37                	mov    %esi,(%edi)
43f16d:	5e                   	pop    %esi
43f16e:	e9 6a 8c fc ff       	jmp    0x407ddd
43f173:	48                   	dec    %eax
43f174:	89 01                	mov    %eax,(%ecx)
43f176:	8b cf                	mov    %edi,%ecx
43f178:	56                   	push   %esi
43f179:	e8 0b 90 fc ff       	call   0x408189
43f17e:	ff 75 08             	push   0x8(%ebp)
43f181:	e8 b6 3c fe ff       	call   0x422e3c
43f186:	59                   	pop    %ecx
43f187:	8b 4f 04             	mov    0x4(%edi),%ecx
43f18a:	41                   	inc    %ecx
43f18b:	03 c1                	add    %ecx,%eax
43f18d:	50                   	push   %eax
43f18e:	e8 dd 8f fc ff       	call   0x408170
43f193:	33 c9                	xor    %ecx,%ecx
43f195:	89 47 08             	mov    %eax,0x8(%edi)
43f198:	6a 02                	push   $0x2
43f19a:	5a                   	pop    %edx
43f19b:	f7 e2                	mul    %edx
43f19d:	0f 90 c1             	seto   %cl
43f1a0:	f7 d9                	neg    %ecx
43f1a2:	0b c8                	or     %eax,%ecx
43f1a4:	51                   	push   %ecx
43f1a5:	e8 fb 1d fe ff       	call   0x420fa5
43f1aa:	8b 4f 04             	mov    0x4(%edi),%ecx
43f1ad:	8b f0                	mov    %eax,%esi
43f1af:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
43f1b6:	51                   	push   %ecx
43f1b7:	ff 37                	push   (%edi)
43f1b9:	56                   	push   %esi
43f1ba:	e8 c1 1e fe ff       	call   0x421080
43f1bf:	83 c4 10             	add    $0x10,%esp
43f1c2:	89 37                	mov    %esi,(%edi)
43f1c4:	5e                   	pop    %esi
43f1c5:	e9 55 8c fc ff       	jmp    0x407e1f
43f1ca:	8b 4e 04             	mov    0x4(%esi),%ecx
43f1cd:	8b 79 08             	mov    0x8(%ecx),%edi
43f1d0:	85 c9                	test   %ecx,%ecx
43f1d2:	74 06                	je     0x43f1da