40992b:	74 0d                	je     0x40993a
40992d:	66 39 38             	cmp    %di,(%eax)
409930:	74 08                	je     0x40993a
409932:	83 c0 02             	add    $0x2,%eax
409935:	83 ee 01             	sub    $0x1,%esi
409938:	75 f3                	jne    0x40992d
40993a:	8b fe                	mov    %esi,%edi
40993c:	8b c2                	mov    %edx,%eax
40993e:	f7 de                	neg    %esi
409940:	1b f6                	sbb    %esi,%esi
409942:	2b c7                	sub    %edi,%eax
409944:	81 e6 a9 ff f8 7f    	and    $0x7ff8ffa9,%esi
40994a:	03 f3                	add    %ebx,%esi
40994c:	f7 df                	neg    %edi
40994e:	1b ff                	sbb    %edi,%edi
409950:	23 f8                	and    %eax,%edi
409952:	85 f6                	test   %esi,%esi
409954:	78 11                	js     0x409967
409956:	51                   	push   %ecx
409957:	ff 75 08             	push   0x8(%ebp)
40995a:	2b d7                	sub    %edi,%edx
40995c:	51                   	push   %ecx
40995d:	8d 0c 79             	lea    (%ecx,%edi,2),%ecx
409960:	e8 0b 00 00 00       	call   0x409970
409965:	8b f0                	mov    %eax,%esi
409967:	5f                   	pop    %edi
409968:	8b c6                	mov    %esi,%eax
40996a:	5e                   	pop    %esi
40996b:	5b                   	pop    %ebx
40996c:	5d                   	pop    %ebp
40996d:	c2 04 00             	ret    $0x4
409970:	8b ff                	mov    %edi,%edi
409972:	55                   	push   %ebp
409973:	8b ec                	mov    %esp,%ebp
409975:	85 d2                	test   %edx,%edx
409977:	74 2b                	je     0x4099a4
409979:	8b 45 0c             	mov    0xc(%ebp),%eax
40997c:	56                   	push   %esi
40997d:	57                   	push   %edi
40997e:	be fe ff ff 7f       	mov    $0x7ffffffe,%esi
409983:	2b c1                	sub    %ecx,%eax
409985:	85 f6                	test   %esi,%esi
409987:	74 15                	je     0x40999e
409989:	0f b7 3c 08          	movzwl (%eax,%ecx,1),%edi
40998d:	66 85 ff             	test   %di,%di
409990:	74 0c                	je     0x40999e
409992:	66 89 39             	mov    %di,(%ecx)
409995:	83 c1 02             	add    $0x2,%ecx
409998:	4e                   	dec    %esi
409999:	83 ea 01             	sub    $0x1,%edx
40999c:	75 e7                	jne    0x409985
40999e:	5f                   	pop    %edi
40999f:	5e                   	pop    %esi
4099a0:	85 d2                	test   %edx,%edx
4099a2:	75 03                	jne    0x4099a7
4099a4:	83 e9 02             	sub    $0x2,%ecx
4099a7:	f7 da                	neg    %edx
4099a9:	1b d2                	sbb    %edx,%edx
4099ab:	81 e2 86 ff f8 7f    	and    $0x7ff8ff86,%edx
4099b1:	33 c0                	xor    %eax,%eax
4099b3:	66 89 01             	mov    %ax,(%ecx)
4099b6:	8d 82 7a 00 07 80    	lea    -0x7ff8ff86(%edx),%eax
4099bc:	5d                   	pop    %ebp
4099bd:	c2 0c 00             	ret    $0xc
4099c0:	8b ff                	mov    %edi,%edi
4099c2:	55                   	push   %ebp
4099c3:	8b ec                	mov    %esp,%ebp
4099c5:	33 c0                	xor    %eax,%eax
4099c7:	85 d2                	test   %edx,%edx
4099c9:	74 08                	je     0x4099d3
4099cb:	81 fa ff ff ff 7f    	cmp    $0x7fffffff,%edx
4099d1:	76 05                	jbe    0x4099d8
4099d3:	b8 57 00 07 80       	mov    $0x80070057,%eax
4099d8:	85 c0                	test   %eax,%eax
4099da:	78 0c                	js     0x4099e8
4099dc:	51                   	push   %ecx
4099dd:	ff 75 08             	push   0x8(%ebp)
4099e0:	51                   	push   %ecx
4099e1:	e8 8a ff ff ff       	call   0x409970
4099e6:	eb 09                	jmp    0x4099f1
4099e8:	85 d2                	test   %edx,%edx
4099ea:	74 05                	je     0x4099f1
4099ec:	33 d2                	xor    %edx,%edx
4099ee:	66 89 11             	mov    %dx,(%ecx)
4099f1:	5d                   	pop    %ebp
4099f2:	c2 04 00             	ret    $0x4
4099f5:	8b ff                	mov    %edi,%edi
4099f7:	55                   	push   %ebp
4099f8:	8b ec                	mov    %esp,%ebp
4099fa:	83 ec 10             	sub    $0x10,%esp
4099fd:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
409a01:	8d 45 f0             	lea    -0x10(%ebp),%eax
409a04:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
409a08:	50                   	push   %eax
409a09:	51                   	push   %ecx
409a0a:	6a 65                	push   $0x65
409a0c:	5a                   	pop    %edx
409a0d:	c7 45 f0 38 30 40 00 	movl   $0x403038,-0x10(%ebp)
409a14:	c7 45 f4 e8 2e 40 00 	movl   $0x402ee8,-0xc(%ebp)
409a1b:	e8 e7 cb ff ff       	call   0x406607
409a20:	c9                   	leave
409a21:	c3                   	ret
409a22:	cc                   	int3
409a23:	cc                   	int3
409a24:	cc                   	int3
409a25:	cc                   	int3
409a26:	cc                   	int3
409a27:	cc                   	int3
409a28:	cc                   	int3
409a29:	cc                   	int3
409a2a:	cc                   	int3
409a2b:	cc                   	int3
409a2c:	cc                   	int3
409a2d:	cc                   	int3
409a2e:	cc                   	int3
409a2f:	cc                   	int3
409a30:	8b ff                	mov    %edi,%edi
409a32:	55                   	push   %ebp
409a33:	8b ec                	mov    %esp,%ebp
409a35:	56                   	push   %esi
409a36:	8b f1                	mov    %ecx,%esi
409a38:	e8 a9 01 00 00       	call   0x409be6
409a3d:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
409a41:	74 08                	je     0x409a4b
409a43:	56                   	push   %esi
409a44:	ff 15 d0 62 41 00    	call   *0x4162d0
409a4a:	59                   	pop    %ecx
409a4b:	8b c6                	mov    %esi,%eax
409a4d:	5e                   	pop    %esi
409a4e:	5d                   	pop    %ebp
409a4f:	c2 04 00             	ret    $0x4
409a52:	8b ff                	mov    %edi,%edi
409a54:	55                   	push   %ebp
409a55:	8b ec                	mov    %esp,%ebp
409a57:	83 ec 14             	sub    $0x14,%esp
409a5a:	53                   	push   %ebx
409a5b:	57                   	push   %edi
409a5c:	6a 04                	push   $0x4
409a5e:	5f                   	pop    %edi
409a5f:	57                   	push   %edi
409a60:	8d 45 fc             	lea    -0x4(%ebp),%eax
409a63:	33 db                	xor    %ebx,%ebx
409a65:	50                   	push   %eax
409a66:	43                   	inc    %ebx
409a67:	6a 08                	push   $0x8
409a69:	89 5d fc             	mov    %ebx,-0x4(%ebp)
409a6c:	ff 15 fc 60 41 00    	call   *0x4160fc
409a72:	57                   	push   %edi
409a73:	8d 45 f8             	lea    -0x8(%ebp),%eax
409a76:	89 5d f8             	mov    %ebx,-0x8(%ebp)
409a79:	50                   	push   %eax
409a7a:	6a 02                	push   $0x2
409a7c:	ff 15 fc 60 41 00    	call   *0x4160fc
409a82:	57                   	push   %edi
409a83:	8d 45 f4             	lea    -0xc(%ebp),%eax
409a86:	c7 45 f4 02 00 00 00 	movl   $0x2,-0xc(%ebp)
409a8d:	50                   	push   %eax
409a8e:	6a 09                	push   $0x9
409a90:	ff 15 fc 60 41 00    	call   *0x4160fc
409a96:	57                   	push   %edi
409a97:	8d 45 f0             	lea    -0x10(%ebp),%eax
409a9a:	c7 45 f0 03 00 00 00 	movl   $0x3,-0x10(%ebp)
409aa1:	50                   	push   %eax
409aa2:	6a 0a                	push   $0xa
409aa4:	ff 15 fc 60 41 00    	call   *0x4160fc
409aaa:	57                   	push   %edi
409aab:	8d 45 ec             	lea    -0x14(%ebp),%eax
409aae:	89 5d ec             	mov    %ebx,-0x14(%ebp)
409ab1:	50                   	push   %eax
409ab2:	6a 06                	push   $0x6
409ab4:	ff 15 fc 60 41 00    	call   *0x4160fc
409aba:	53                   	push   %ebx
409abb:	ff 15 00 61 41 00    	call   *0x416100
409ac1:	5f                   	pop    %edi
409ac2:	5b                   	pop    %ebx
409ac3:	c9                   	leave
409ac4:	c3                   	ret
409ac5:	8b ff                	mov    %edi,%edi
409ac7:	55                   	push   %ebp
409ac8:	8b ec                	mov    %esp,%ebp
409aca:	83 e4 f8             	and    $0xfffffff8,%esp
409acd:	51                   	push   %ecx
409ace:	56                   	push   %esi
409acf:	68 48 56 41 00       	push   $0x415648
409ad4:	33 f6                	xor    %esi,%esi
409ad6:	56                   	push   %esi
409ad7:	56                   	push   %esi
409ad8:	68 38 2c 40 00       	push   $0x402c38
409add:	ff 15 a0 60 41 00    	call   *0x4160a0
409ae3:	68 58 2c 40 00       	push   $0x402c58
409ae8:	e8 ba 74 00 00       	call   0x410fa7
409aed:	56                   	push   %esi
409aee:	56                   	push   %esi
409aef:	6a 01                	push   $0x1
409af1:	56                   	push   %esi
409af2:	ff 15 04 61 41 00    	call   *0x416104
409af8:	e8 55 ff ff ff       	call   0x409a52
409afd:	8b 45 10             	mov    0x10(%ebp),%eax
409b00:	85 c0                	test   %eax,%eax
409b02:	74 30                	je     0x409b34
409b04:	0f b7 08             	movzwl (%eax),%ecx
409b07:	83 f9 2d             	cmp    $0x2d,%ecx
409b0a:	74 05                	je     0x409b11
409b0c:	83 f9 2f             	cmp    $0x2f,%ecx
409b0f:	75 23                	jne    0x409b34
409b11:	6a ff                	push   $0xffffffff
409b13:	68 38 2f 40 00       	push   $0x402f38
409b18:	6a ff                	push   $0xffffffff
409b1a:	83 c0 02             	add    $0x2,%eax
409b1d:	50                   	push   %eax
409b1e:	6a 01                	push   $0x1
409b20:	6a 7f                	push   $0x7f
409b22:	ff 15 08 61 41 00    	call   *0x416108
409b28:	83 f8 02             	cmp    $0x2,%eax
409b2b:	75 07                	jne    0x409b34
409b2d:	e8 2e 1f 00 00       	call   0x40ba60
409b32:	eb 35                	jmp    0x409b69
409b34:	80 3d 50 56 41 00 00 	cmpb   $0x0,0x415650
409b3b:	74 05                	je     0x409b42
409b3d:	83 ce ff             	or     $0xffffffff,%esi
409b40:	eb 27                	jmp    0x409b69
409b42:	89 74 24 04          	mov    %esi,0x4(%esp)
409b46:	ff 15 0c 61 41 00    	call   *0x41610c
409b4c:	8d 4c 24 04          	lea    0x4(%esp),%ecx
409b50:	51                   	push   %ecx
409b51:	50                   	push   %eax
409b52:	e8 08 02 00 00       	call   0x409d5f
409b57:	3c 01                	cmp    $0x1,%al
409b59:	75 0a                	jne    0x409b65
409b5b:	51                   	push   %ecx
409b5c:	e8 88 01 00 00       	call   0x409ce9
409b61:	8b f0                	mov    %eax,%esi
409b63:	eb 04                	jmp    0x409b69
409b65:	8b 74 24 04          	mov    0x4(%esp),%esi
409b69:	68 58 2b 40 00       	push   $0x402b58
409b6e:	e8 34 74 00 00       	call   0x410fa7
409b73:	8b c6                	mov    %esi,%eax
409b75:	5e                   	pop    %esi
409b76:	8b e5                	mov    %ebp,%esp
409b78:	5d                   	pop    %ebp
409b79:	c2 10 00             	ret    $0x10
409b7c:	cc                   	int3
409b7d:	cc                   	int3
409b7e:	cc                   	int3
409b7f:	cc                   	int3
409b80:	8b ff                	mov    %edi,%edi
409b82:	55                   	push   %ebp
409b83:	8b ec                	mov    %esp,%ebp
409b85:	8b 45 08             	mov    0x8(%ebp),%eax
409b88:	56                   	push   %esi
409b89:	68 e8 2e 40 00       	push   $0x402ee8
409b8e:	68 38 30 40 00       	push   $0x403038
409b93:	8b 08                	mov    (%eax),%ecx
409b95:	50                   	push   %eax
409b96:	8b 71 0c             	mov    0xc(%ecx),%esi
409b99:	8b ce                	mov    %esi,%ecx
409b9b:	ff 15 28 63 41 00    	call   *0x416328
409ba1:	ff d6                	call   *%esi
409ba3:	5e                   	pop    %esi
409ba4:	5d                   	pop    %ebp
409ba5:	c2 04 00             	ret    $0x4
409ba8:	cc                   	int3
409ba9:	cc                   	int3
409baa:	cc                   	int3
409bab:	cc                   	int3
409bac:	cc                   	int3
409bad:	cc                   	int3
409bae:	cc                   	int3
409baf:	cc                   	int3
409bb0:	8b ff                	mov    %edi,%edi
409bb2:	56                   	push   %esi
409bb3:	83 ce ff             	or     $0xffffffff,%esi
409bb6:	f0 0f c1 71 08       	lock xadd %esi,0x8(%ecx)
409bbb:	4e                   	dec    %esi
409bbc:	75 24                	jne    0x409be2
409bbe:	80 79 3c 00          	cmpb   $0x0,0x3c(%ecx)
409bc2:	74 0f                	je     0x409bd3
409bc4:	ff 71 30             	push   0x30(%ecx)
409bc7:	c6 41 3d 01          	movb   $0x1,0x3d(%ecx)
409bcb:	ff 15 10 61 41 00    	call   *0x416110
409bd1:	eb 0f                	jmp    0x409be2
409bd3:	6a 00                	push   $0x0
409bd5:	6a 00                	push   $0x0
409bd7:	6a 12                	push   $0x12
409bd9:	ff 71 2c             	push   0x2c(%ecx)
409bdc:	ff 15 dc 61 41 00    	call   *0x4161dc
409be2:	8b c6                	mov    %esi,%eax
409be4:	5e                   	pop    %esi
409be5:	c3                   	ret
409be6:	8b ff                	mov    %edi,%edi
409be8:	56                   	push   %esi
409be9:	6a 00                	push   $0x0
409beb:	8b f1                	mov    %ecx,%esi
409bed:	e8 58 0e 00 00       	call   0x40aa4a
409bf2:	8b ce                	mov    %esi,%ecx
409bf4:	e8 09 0e 00 00       	call   0x40aa02
409bf9:	e8 61 0d 00 00       	call   0x40a95f
409bfe:	80 7e 3e 00          	cmpb   $0x0,0x3e(%esi)
409c02:	74 06                	je     0x409c0a
409c04:	ff 15 2c 62 41 00    	call   *0x41622c
409c0a:	8b ce                	mov    %esi,%ecx
409c0c:	5e                   	pop    %esi
409c0d:	e9 f0 0d 00 00       	jmp    0x40aa02
409c12:	8b ff                	mov    %edi,%edi
409c14:	53                   	push   %ebx
409c15:	56                   	push   %esi
409c16:	57                   	push   %edi
409c17:	ba d8 55 41 00       	mov    $0x4155d8,%edx
409c1c:	c7 05 a4 55 41 00 c8 	movl   $0x4155c8,0x4155a4
409c23:	55 41 00
409c26:	6a 06                	push   $0x6
409c28:	59                   	pop    %ecx
409c29:	33 c0                	xor    %eax,%eax
409c2b:	8b fa                	mov    %edx,%edi
409c2d:	f3 ab                	rep stos %eax,%es:(%edi)
409c2f:	33 db                	xor    %ebx,%ebx
409c31:	8b ca                	mov    %edx,%ecx
409c33:	89 1d cc 55 41 00    	mov    %ebx,0x4155cc
409c39:	89 1d d4 55 41 00    	mov    %ebx,0x4155d4
409c3f:	89 1d d0 55 41 00    	mov    %ebx,0x4155d0
409c45:	89 1d f0 55 41 00    	mov    %ebx,0x4155f0
409c4b:	e8 ef af ff ff       	call   0x404c3f
409c50:	85 c0                	test   %eax,%eax
409c52:	79 09                	jns    0x409c5d
409c54:	c6 05 50 56 41 00 01 	movb   $0x1,0x415650
409c5b:	eb 0a                	jmp    0x409c67
409c5d:	c7 05 cc 55 41 00 24 	movl   $0x24,0x4155cc
409c64:	00 00 00
409c67:	be 88 2c 40 00       	mov    $0x402c88,%esi
409c6c:	bf a8 55 41 00       	mov    $0x4155a8,%edi
409c71:	a5                   	movsl  %ds:(%esi),%es:(%edi)
409c72:	a5                   	movsl  %ds:(%esi),%es:(%edi)
409c73:	a5                   	movsl  %ds:(%esi),%es:(%edi)
409c74:	a5                   	movsl  %ds:(%esi),%es:(%edi)
409c75:	ff 15 14 61 41 00    	call   *0x416114
409c7b:	53                   	push   %ebx
409c7c:	53                   	push   %ebx
409c7d:	a3 f4 55 41 00       	mov    %eax,0x4155f4
409c82:	89 1d f8 55 41 00    	mov    %ebx,0x4155f8
409c88:	c7 05 fc 55 41 00 88 	movl   $0x1388,0x4155fc
409c8f:	13 00 00
409c92:	c7 05 00 56 41 00 e8 	movl   $0x3e8,0x415600
409c99:	03 00 00
409c9c:	c6 05 04 56 41 00 01 	movb   $0x1,0x415604
409ca3:	88 1d 06 56 41 00    	mov    %bl,0x415606
409ca9:	ff 15 28 62 41 00    	call   *0x416228
409caf:	5f                   	pop    %edi
409cb0:	5e                   	pop    %esi
409cb1:	5b                   	pop    %ebx
409cb2:	85 c0                	test   %eax,%eax