408962:	68 b0 12 40 00       	push   $0x4012b0
408967:	ff 75 08             	push   0x8(%ebp)
40896a:	8b cb                	mov    %ebx,%ecx
40896c:	e8 ef fd ff ff       	call   0x408760
408971:	8b f0                	mov    %eax,%esi
408973:	85 f6                	test   %esi,%esi
408975:	79 27                	jns    0x40899e
408977:	a1 00 b0 42 00       	mov    0x42b000,%eax
40897c:	3d 00 b0 42 00       	cmp    $0x42b000,%eax
408981:	74 59                	je     0x4089dc
408983:	f6 40 1c 01          	testb  $0x1,0x1c(%eax)
408987:	74 53                	je     0x4089dc
408989:	ff 70 14             	push   0x14(%eax)
40898c:	ba 30 21 40 00       	mov    $0x402130,%edx
408991:	ff 70 10             	push   0x10(%eax)
408994:	6a 20                	push   $0x20
408996:	59                   	pop    %ecx
408997:	e8 14 ea ff ff       	call   0x4073b0
40899c:	eb 3e                	jmp    0x4089dc
40899e:	bf 60 1f 40 00       	mov    $0x401f60,%edi
4089a3:	8d 4b 48             	lea    0x48(%ebx),%ecx
4089a6:	57                   	push   %edi
4089a7:	e8 0c 37 00 00       	call   0x40c0b8
4089ac:	8b f0                	mov    %eax,%esi
4089ae:	85 f6                	test   %esi,%esi
4089b0:	79 28                	jns    0x4089da
4089b2:	a1 00 b0 42 00       	mov    0x42b000,%eax
4089b7:	3d 00 b0 42 00       	cmp    $0x42b000,%eax
4089bc:	74 1e                	je     0x4089dc
4089be:	f6 40 1c 01          	testb  $0x1,0x1c(%eax)
4089c2:	74 18                	je     0x4089dc
4089c4:	57                   	push   %edi
4089c5:	ff 70 14             	push   0x14(%eax)
4089c8:	ba 30 21 40 00       	mov    $0x402130,%edx
4089cd:	ff 70 10             	push   0x10(%eax)
4089d0:	6a 21                	push   $0x21
4089d2:	59                   	pop    %ecx
4089d3:	e8 80 ef ff ff       	call   0x407958
4089d8:	eb 02                	jmp    0x4089dc
4089da:	33 f6                	xor    %esi,%esi
4089dc:	5f                   	pop    %edi
4089dd:	8b c6                	mov    %esi,%eax
4089df:	5e                   	pop    %esi
4089e0:	5b                   	pop    %ebx
4089e1:	5d                   	pop    %ebp
4089e2:	c2 04 00             	ret    $0x4
4089e5:	8b ff                	mov    %edi,%edi
4089e7:	55                   	push   %ebp
4089e8:	8b ec                	mov    %esp,%ebp
4089ea:	85 d2                	test   %edx,%edx
4089ec:	74 2b                	je     0x408a19
4089ee:	8b 45 0c             	mov    0xc(%ebp),%eax
4089f1:	56                   	push   %esi
4089f2:	57                   	push   %edi
4089f3:	be fe ff ff 7f       	mov    $0x7ffffffe,%esi
4089f8:	2b c1                	sub    %ecx,%eax
4089fa:	85 f6                	test   %esi,%esi
4089fc:	74 15                	je     0x408a13
4089fe:	0f b7 3c 08          	movzwl (%eax,%ecx,1),%edi
408a02:	66 85 ff             	test   %di,%di
408a05:	74 0c                	je     0x408a13
408a07:	66 89 39             	mov    %di,(%ecx)
408a0a:	83 c1 02             	add    $0x2,%ecx
408a0d:	4e                   	dec    %esi
408a0e:	83 ea 01             	sub    $0x1,%edx
408a11:	75 e7                	jne    0x4089fa
408a13:	5f                   	pop    %edi
408a14:	5e                   	pop    %esi
408a15:	85 d2                	test   %edx,%edx
408a17:	75 03                	jne    0x408a1c
408a19:	83 e9 02             	sub    $0x2,%ecx
408a1c:	f7 da                	neg    %edx
408a1e:	1b d2                	sbb    %edx,%edx
408a20:	81 e2 86 ff f8 7f    	and    $0x7ff8ff86,%edx
408a26:	33 c0                	xor    %eax,%eax
408a28:	66 89 01             	mov    %ax,(%ecx)
408a2b:	8d 82 7a 00 07 80    	lea    -0x7ff8ff86(%edx),%eax
408a31:	5d                   	pop    %ebp
408a32:	c2 0c 00             	ret    $0xc
408a35:	8b ff                	mov    %edi,%edi
408a37:	55                   	push   %ebp
408a38:	8b ec                	mov    %esp,%ebp
408a3a:	33 c0                	xor    %eax,%eax
408a3c:	85 d2                	test   %edx,%edx
408a3e:	74 08                	je     0x408a48
408a40:	81 fa ff ff ff 7f    	cmp    $0x7fffffff,%edx
408a46:	76 05                	jbe    0x408a4d
408a48:	b8 57 00 07 80       	mov    $0x80070057,%eax
408a4d:	85 c0                	test   %eax,%eax
408a4f:	78 0c                	js     0x408a5d
408a51:	51                   	push   %ecx
408a52:	ff 75 08             	push   0x8(%ebp)
408a55:	51                   	push   %ecx
408a56:	e8 8a ff ff ff       	call   0x4089e5
408a5b:	eb 09                	jmp    0x408a66
408a5d:	85 d2                	test   %edx,%edx
408a5f:	74 05                	je     0x408a66
408a61:	33 d2                	xor    %edx,%edx
408a63:	66 89 11             	mov    %dx,(%ecx)
408a66:	5d                   	pop    %ebp
408a67:	c2 04 00             	ret    $0x4
408a6a:	8b ff                	mov    %edi,%edi
408a6c:	55                   	push   %ebp
408a6d:	8b ec                	mov    %esp,%ebp
408a6f:	6a 00                	push   $0x0
408a71:	6a 04                	push   $0x4
408a73:	8d 45 14             	lea    0x14(%ebp),%eax
408a76:	50                   	push   %eax
408a77:	6a 04                	push   $0x4
408a79:	8d 45 10             	lea    0x10(%ebp),%eax
408a7c:	50                   	push   %eax
408a7d:	51                   	push   %ecx
408a7e:	52                   	push   %edx
408a7f:	6a 2b                	push   $0x2b
408a81:	ff 75 0c             	push   0xc(%ebp)
408a84:	ff 75 08             	push   0x8(%ebp)
408a87:	ff 15 68 c4 42 00    	call   *0x42c468
408a8d:	83 c4 28             	add    $0x28,%esp
408a90:	5d                   	pop    %ebp
408a91:	c2 10 00             	ret    $0x10
408a94:	8b ff                	mov    %edi,%edi
408a96:	55                   	push   %ebp
408a97:	8b ec                	mov    %esp,%ebp
408a99:	8b 55 10             	mov    0x10(%ebp),%edx
408a9c:	56                   	push   %esi
408a9d:	57                   	push   %edi
408a9e:	85 d2                	test   %edx,%edx
408aa0:	74 11                	je     0x408ab3
408aa2:	8b f2                	mov    %edx,%esi
408aa4:	8d 7e 01             	lea    0x1(%esi),%edi
408aa7:	8a 06                	mov    (%esi),%al
408aa9:	46                   	inc    %esi
408aaa:	84 c0                	test   %al,%al
408aac:	75 f9                	jne    0x408aa7
408aae:	2b f7                	sub    %edi,%esi
408ab0:	46                   	inc    %esi
408ab1:	eb 03                	jmp    0x408ab6
408ab3:	6a 05                	push   $0x5
408ab5:	5e                   	pop    %esi
408ab6:	85 d2                	test   %edx,%edx
408ab8:	75 05                	jne    0x408abf
408aba:	ba 40 21 40 00       	mov    $0x402140,%edx
408abf:	6a 00                	push   $0x0
408ac1:	56                   	push   %esi
408ac2:	52                   	push   %edx
408ac3:	51                   	push   %ecx
408ac4:	68 e0 21 40 00       	push   $0x4021e0
408ac9:	6a 2b                	push   $0x2b
408acb:	ff 75 0c             	push   0xc(%ebp)
408ace:	ff 75 08             	push   0x8(%ebp)
408ad1:	ff 15 68 c4 42 00    	call   *0x42c468
408ad7:	83 c4 20             	add    $0x20,%esp
408ada:	5f                   	pop    %edi
408adb:	5e                   	pop    %esi
408adc:	5d                   	pop    %ebp
408add:	c2 0c 00             	ret    $0xc
408ae0:	8b ff                	mov    %edi,%edi
408ae2:	55                   	push   %ebp
408ae3:	8b ec                	mov    %esp,%ebp
408ae5:	8b 55 10             	mov    0x10(%ebp),%edx
408ae8:	56                   	push   %esi
408ae9:	57                   	push   %edi
408aea:	85 d2                	test   %edx,%edx
408aec:	74 11                	je     0x408aff
408aee:	8b f2                	mov    %edx,%esi
408af0:	8d 7e 01             	lea    0x1(%esi),%edi
408af3:	8a 06                	mov    (%esi),%al
408af5:	46                   	inc    %esi
408af6:	84 c0                	test   %al,%al
408af8:	75 f9                	jne    0x408af3
408afa:	2b f7                	sub    %edi,%esi
408afc:	46                   	inc    %esi
408afd:	eb 03                	jmp    0x408b02
408aff:	6a 05                	push   $0x5
408b01:	5e                   	pop    %esi
408b02:	85 d2                	test   %edx,%edx
408b04:	75 05                	jne    0x408b0b
408b06:	ba 40 21 40 00       	mov    $0x402140,%edx
408b0b:	6a 00                	push   $0x0
408b0d:	6a 04                	push   $0x4
408b0f:	8d 45 14             	lea    0x14(%ebp),%eax
408b12:	50                   	push   %eax
408b13:	56                   	push   %esi
408b14:	52                   	push   %edx
408b15:	51                   	push   %ecx
408b16:	68 e0 21 40 00       	push   $0x4021e0
408b1b:	6a 2b                	push   $0x2b
408b1d:	ff 75 0c             	push   0xc(%ebp)
408b20:	ff 75 08             	push   0x8(%ebp)
408b23:	ff 15 68 c4 42 00    	call   *0x42c468
408b29:	83 c4 28             	add    $0x28,%esp
408b2c:	5f                   	pop    %edi
408b2d:	5e                   	pop    %esi
408b2e:	5d                   	pop    %ebp
408b2f:	c2 10 00             	ret    $0x10
408b32:	8b ff                	mov    %edi,%edi
408b34:	55                   	push   %ebp
408b35:	8b ec                	mov    %esp,%ebp
408b37:	83 e4 f8             	and    $0xfffffff8,%esp
408b3a:	51                   	push   %ecx
408b3b:	53                   	push   %ebx
408b3c:	33 db                	xor    %ebx,%ebx
408b3e:	21 5c 24 04          	and    %ebx,0x4(%esp)
408b42:	56                   	push   %esi
408b43:	57                   	push   %edi
408b44:	8b f9                	mov    %ecx,%edi
408b46:	39 5d 08             	cmp    %ebx,0x8(%ebp)
408b49:	0f 84 cf 01 00 00    	je     0x408d1e
408b4f:	39 5d 0c             	cmp    %ebx,0xc(%ebp)
408b52:	0f 84 c6 01 00 00    	je     0x408d1e
408b58:	ff 75 08             	push   0x8(%ebp)
408b5b:	e8 50 02 00 00       	call   0x408db0
408b60:	8b f0                	mov    %eax,%esi
408b62:	85 f6                	test   %esi,%esi
408b64:	79 32                	jns    0x408b98
408b66:	a1 00 b0 42 00       	mov    0x42b000,%eax
408b6b:	3d 00 b0 42 00       	cmp    $0x42b000,%eax
408b70:	0f 84 8e 01 00 00    	je     0x408d04
408b76:	f6 40 1c 01          	testb  $0x1,0x1c(%eax)
408b7a:	0f 84 84 01 00 00    	je     0x408d04
408b80:	ff 70 14             	push   0x14(%eax)
408b83:	ba e0 21 40 00       	mov    $0x4021e0,%edx
408b88:	ff 70 10             	push   0x10(%eax)
408b8b:	6a 0b                	push   $0xb
408b8d:	59                   	pop    %ecx
408b8e:	e8 1d e8 ff ff       	call   0x4073b0
408b93:	e9 6c 01 00 00       	jmp    0x408d04
408b98:	8b 8f 8c 01 00 00    	mov    0x18c(%edi),%ecx
408b9e:	8d 87 a8 01 00 00    	lea    0x1a8(%edi),%eax
408ba4:	50                   	push   %eax
408ba5:	8d 97 a4 01 00 00    	lea    0x1a4(%edi),%edx
408bab:	8b 49 08             	mov    0x8(%ecx),%ecx
408bae:	e8 e4 d9 00 00       	call   0x416597
408bb3:	85 c0                	test   %eax,%eax
408bb5:	0f 88 1f 01 00 00    	js     0x408cda
408bbb:	8b cf                	mov    %edi,%ecx
408bbd:	e8 2f 1a 00 00       	call   0x40a5f1
408bc2:	85 c0                	test   %eax,%eax
408bc4:	0f 84 10 01 00 00    	je     0x408cda
408bca:	8d 44 24 0c          	lea    0xc(%esp),%eax
408bce:	50                   	push   %eax
408bcf:	33 c0                	xor    %eax,%eax
408bd1:	50                   	push   %eax
408bd2:	57                   	push   %edi
408bd3:	68 60 8d 40 00       	push   $0x408d60
408bd8:	50                   	push   %eax
408bd9:	50                   	push   %eax
408bda:	ff 15 68 c2 42 00    	call   *0x42c268
408be0:	8b d8                	mov    %eax,%ebx
408be2:	85 db                	test   %ebx,%ebx
408be4:	75 45                	jne    0x408c2b
408be6:	8b 0d 00 b0 42 00    	mov    0x42b000,%ecx
408bec:	81 f9 00 b0 42 00    	cmp    $0x42b000,%ecx
408bf2:	74 19                	je     0x408c0d
408bf4:	f6 41 1c 01          	testb  $0x1,0x1c(%ecx)
408bf8:	74 13                	je     0x408c0d
408bfa:	ff 71 14             	push   0x14(%ecx)
408bfd:	ba e0 21 40 00       	mov    $0x4021e0,%edx
408c02:	ff 71 10             	push   0x10(%ecx)
408c05:	6a 0d                	push   $0xd
408c07:	59                   	pop    %ecx
408c08:	e8 a3 e7 ff ff       	call   0x4073b0
408c0d:	ff 15 18 c2 42 00    	call   *0x42c218
408c13:	8b f0                	mov    %eax,%esi
408c15:	85 f6                	test   %esi,%esi
408c17:	0f 8e e7 00 00 00    	jle    0x408d04
408c1d:	0f b7 f6             	movzwl %si,%esi
408c20:	81 ce 00 00 07 80    	or     $0x80070000,%esi
408c26:	e9 d9 00 00 00       	jmp    0x408d04
408c2b:	33 f6                	xor    %esi,%esi
408c2d:	46                   	inc    %esi
408c2e:	85 f6                	test   %esi,%esi
408c30:	74 34                	je     0x408c66
408c32:	83 bf 9c 01 00 00 00 	cmpl   $0x0,0x19c(%edi)
408c39:	75 2b                	jne    0x408c66
408c3b:	8b cf                	mov    %edi,%ecx
408c3d:	e8 af 19 00 00       	call   0x40a5f1
408c42:	8b f0                	mov    %eax,%esi
408c44:	85 f6                	test   %esi,%esi
408c46:	75 43                	jne    0x408c8b
408c48:	8b 0d 00 b0 42 00    	mov    0x42b000,%ecx
408c4e:	81 f9 00 b0 42 00    	cmp    $0x42b000,%ecx
408c54:	74 35                	je     0x408c8b
408c56:	f6 41 1c 04          	testb  $0x4,0x1c(%ecx)
408c5a:	74 2f                	je     0x408c8b
408c5c:	ff 71 14             	push   0x14(%ecx)
408c5f:	ff 71 10             	push   0x10(%ecx)
408c62:	6a 0e                	push   $0xe
408c64:	eb 1a                	jmp    0x408c80
408c66:	a1 00 b0 42 00       	mov    0x42b000,%eax
408c6b:	3d 00 b0 42 00       	cmp    $0x42b000,%eax
408c70:	74 19                	je     0x408c8b
408c72:	f6 40 1c 04          	testb  $0x4,0x1c(%eax)
408c76:	74 13                	je     0x408c8b
408c78:	ff 70 14             	push   0x14(%eax)
408c7b:	ff 70 10             	push   0x10(%eax)
408c7e:	6a 0f                	push   $0xf
408c80:	ba e0 21 40 00       	mov    $0x4021e0,%edx
408c85:	59                   	pop    %ecx
408c86:	e8 25 e7 ff ff       	call   0x4073b0
408c8b:	68 0a 1a 00 00       	push   $0x1a0a
408c90:	53                   	push   %ebx
408c91:	ff 15 b4 c2 42 00    	call   *0x42c2b4
408c97:	85 c0                	test   %eax,%eax
408c99:	74 2f                	je     0x408cca
408c9b:	3d 02 01 00 00       	cmp    $0x102,%eax
408ca0:	74 8c                	je     0x408c2e
408ca2:	8b 0d 00 b0 42 00    	mov    0x42b000,%ecx
408ca8:	81 f9 00 b0 42 00    	cmp    $0x42b000,%ecx
408cae:	74 1a                	je     0x408cca
408cb0:	f6 41 1c 01          	testb  $0x1,0x1c(%ecx)
408cb4:	74 14                	je     0x408cca
408cb6:	50                   	push   %eax
408cb7:	ff 71 14             	push   0x14(%ecx)
408cba:	ba e0 21 40 00       	mov    $0x4021e0,%edx
408cbf:	ff 71 10             	push   0x10(%ecx)
408cc2:	6a 10                	push   $0x10
408cc4:	59                   	pop    %ecx
408cc5:	e8 04 e7 ff ff       	call   0x4073ce
408cca:	ff b7 a8 01 00 00    	push   0x1a8(%edi)
408cd0:	ff 15 b0 c2 42 00    	call   *0x42c2b0
408cd6:	33 f6                	xor    %esi,%esi
408cd8:	eb 2a                	jmp    0x408d04
408cda:	a1 00 b0 42 00       	mov    0x42b000,%eax
408cdf:	3d 00 b0 42 00       	cmp    $0x42b000,%eax
408ce4:	74 19                	je     0x408cff
408ce6:	f6 40 1c 01          	testb  $0x1,0x1c(%eax)
408cea:	74 13                	je     0x408cff
408cec:	ff 70 14             	push   0x14(%eax)
408cef:	ba e0 21 40 00       	mov    $0x4021e0,%edx
408cf4:	ff 70 10             	push   0x10(%eax)
408cf7:	6a 0c                	push   $0xc
408cf9:	59                   	pop    %ecx
408cfa:	e8 b1 e6 ff ff       	call   0x4073b0
408cff:	be 05 40 00 80       	mov    $0x80004005,%esi
408d04:	8b 4d 0c             	mov    0xc(%ebp),%ecx
408d07:	8b 87 a0 01 00 00    	mov    0x1a0(%edi),%eax
408d0d:	89 01                	mov    %eax,(%ecx)
408d0f:	85 db                	test   %ebx,%ebx
408d11:	74 07                	je     0x408d1a
408d13:	53                   	push   %ebx
408d14:	ff 15 30 c2 42 00    	call   *0x42c230
408d1a:	8b c6                	mov    %esi,%eax
408d1c:	eb 2a                	jmp    0x408d48
408d1e:	a1 00 b0 42 00       	mov    0x42b000,%eax
408d23:	3d 00 b0 42 00       	cmp    $0x42b000,%eax
408d28:	74 19                	je     0x408d43
408d2a:	f6 40 1c 01          	testb  $0x1,0x1c(%eax)
408d2e:	74 13                	je     0x408d43
408d30:	ff 70 14             	push   0x14(%eax)