40989e:	74 23                	je     0x4098c3
4098a0:	8b c6                	mov    %esi,%eax
4098a2:	e8 21 f9 ff ff       	call   0x4091c8
4098a7:	50                   	push   %eax
4098a8:	8b 45 0c             	mov    0xc(%ebp),%eax
4098ab:	50                   	push   %eax
4098ac:	8b 45 08             	mov    0x8(%ebp),%eax
4098af:	50                   	push   %eax
4098b0:	8b ce                	mov    %esi,%ecx
4098b2:	8b c3                	mov    %ebx,%eax
4098b4:	8b d7                	mov    %edi,%edx
4098b6:	e8 19 fc ff ff       	call   0x4094d4
4098bb:	c6 04 03 00          	movb   $0x0,(%ebx,%eax,1)
4098bf:	8b c3                	mov    %ebx,%eax
4098c1:	eb 02                	jmp    0x4098c5
4098c3:	33 c0                	xor    %eax,%eax
4098c5:	5f                   	pop    %edi
4098c6:	5e                   	pop    %esi
4098c7:	5b                   	pop    %ebx
4098c8:	5d                   	pop    %ebp
4098c9:	c2 08 00             	ret    $0x8
4098cc:	55                   	push   %ebp
4098cd:	8b ec                	mov    %esp,%ebp
4098cf:	51                   	push   %ecx
4098d0:	8b 4d 08             	mov    0x8(%ebp),%ecx
4098d3:	91                   	xchg   %eax,%ecx
4098d4:	87 d1                	xchg   %edx,%ecx
4098d6:	e8 05 00 00 00       	call   0x4098e0
4098db:	5d                   	pop    %ebp
4098dc:	c2 04 00             	ret    $0x4
4098df:	90                   	nop
4098e0:	55                   	push   %ebp
4098e1:	8b ec                	mov    %esp,%ebp
4098e3:	81 c4 04 f0 ff ff    	add    $0xfffff004,%esp
4098e9:	50                   	push   %eax
4098ea:	83 c4 f4             	add    $0xfffffff4,%esp
4098ed:	53                   	push   %ebx
4098ee:	56                   	push   %esi
4098ef:	57                   	push   %edi
4098f0:	89 4d f8             	mov    %ecx,-0x8(%ebp)
4098f3:	89 55 fc             	mov    %edx,-0x4(%ebp)
4098f6:	8b f8                	mov    %eax,%edi
4098f8:	bb 00 10 00 00       	mov    $0x1000,%ebx
4098fd:	8b 55 fc             	mov    -0x4(%ebp),%edx
409900:	8b c2                	mov    %edx,%eax
409902:	85 c0                	test   %eax,%eax
409904:	74 05                	je     0x40990b
409906:	83 e8 04             	sub    $0x4,%eax
409909:	8b 00                	mov    (%eax),%eax
40990b:	3d 00 0c 00 00       	cmp    $0xc00,%eax
409910:	7d 2c                	jge    0x40993e
409912:	8b c2                	mov    %edx,%eax
409914:	85 c0                	test   %eax,%eax
409916:	74 05                	je     0x40991d
409918:	83 e8 04             	sub    $0x4,%eax
40991b:	8b 00                	mov    (%eax),%eax
40991d:	50                   	push   %eax
40991e:	8b 45 f8             	mov    -0x8(%ebp),%eax
409921:	50                   	push   %eax
409922:	8b 45 08             	mov    0x8(%ebp),%eax
409925:	50                   	push   %eax
409926:	8b 4d fc             	mov    -0x4(%ebp),%ecx
409929:	8d 85 f4 ef ff ff    	lea    -0x100c(%ebp),%eax
40992f:	ba ff 0f 00 00       	mov    $0xfff,%edx
409934:	e8 9b fb ff ff       	call   0x4094d4
409939:	89 45 f4             	mov    %eax,-0xc(%ebp)
40993c:	eb 10                	jmp    0x40994e
40993e:	8b c2                	mov    %edx,%eax
409940:	85 c0                	test   %eax,%eax
409942:	74 05                	je     0x409949
409944:	83 e8 04             	sub    $0x4,%eax
409947:	8b 00                	mov    (%eax),%eax
409949:	8b d8                	mov    %eax,%ebx
40994b:	89 5d f4             	mov    %ebx,-0xc(%ebp)
40994e:	8b c3                	mov    %ebx,%eax
409950:	48                   	dec    %eax
409951:	3b 45 f4             	cmp    -0xc(%ebp),%eax
409954:	7f 4d                	jg     0x4099a3
409956:	eb 37                	jmp    0x40998f
409958:	03 db                	add    %ebx,%ebx
40995a:	8b c7                	mov    %edi,%eax
40995c:	e8 bf ad ff ff       	call   0x404720
409961:	8b c7                	mov    %edi,%eax
409963:	8b d3                	mov    %ebx,%edx
409965:	e8 02 b5 ff ff       	call   0x404e6c
40996a:	8b 75 fc             	mov    -0x4(%ebp),%esi
40996d:	85 f6                	test   %esi,%esi
40996f:	74 05                	je     0x409976
409971:	83 ee 04             	sub    $0x4,%esi
409974:	8b 36                	mov    (%esi),%esi
409976:	56                   	push   %esi
409977:	8b 45 f8             	mov    -0x8(%ebp),%eax
40997a:	50                   	push   %eax
40997b:	8b 45 08             	mov    0x8(%ebp),%eax
40997e:	50                   	push   %eax
40997f:	8b 4d fc             	mov    -0x4(%ebp),%ecx
409982:	8b d3                	mov    %ebx,%edx
409984:	4a                   	dec    %edx
409985:	8b 07                	mov    (%edi),%eax
409987:	e8 48 fb ff ff       	call   0x4094d4
40998c:	89 45 f4             	mov    %eax,-0xc(%ebp)
40998f:	8b c3                	mov    %ebx,%eax
409991:	48                   	dec    %eax
409992:	3b 45 f4             	cmp    -0xc(%ebp),%eax
409995:	7e c1                	jle    0x409958
409997:	8b c7                	mov    %edi,%eax
409999:	8b 55 f4             	mov    -0xc(%ebp),%edx
40999c:	e8 cb b4 ff ff       	call   0x404e6c
4099a1:	eb 10                	jmp    0x4099b3
4099a3:	8d 95 f4 ef ff ff    	lea    -0x100c(%ebp),%edx
4099a9:	8b c7                	mov    %edi,%eax
4099ab:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4099ae:	e8 5d ae ff ff       	call   0x404810
4099b3:	5f                   	pop    %edi
4099b4:	5e                   	pop    %esi
4099b5:	5b                   	pop    %ebx
4099b6:	8b e5                	mov    %ebp,%esp
4099b8:	5d                   	pop    %ebp
4099b9:	c2 04 00             	ret    $0x4
4099bc:	56                   	push   %esi
4099bd:	31 f6                	xor    %esi,%esi
4099bf:	aa                   	stos   %al,%es:(%edi)
4099c0:	08 db                	or     %bl,%bl
4099c2:	75 04                	jne    0x4099c8
4099c4:	31 d2                	xor    %edx,%edx
4099c6:	eb 0a                	jmp    0x4099d2
4099c8:	09 d2                	or     %edx,%edx
4099ca:	7d 06                	jge    0x4099d2
4099cc:	b0 2d                	mov    $0x2d,%al
4099ce:	f7 da                	neg    %edx
4099d0:	eb 06                	jmp    0x4099d8
4099d2:	08 e4                	or     %ah,%ah
4099d4:	74 03                	je     0x4099d9
4099d6:	88 e0                	mov    %ah,%al
4099d8:	aa                   	stos   %al,%es:(%edi)
4099d9:	92                   	xchg   %eax,%edx
4099da:	50                   	push   %eax
4099db:	89 e3                	mov    %esp,%ebx
4099dd:	31 d2                	xor    %edx,%edx
4099df:	f7 b6 74 08 46 00    	divl   0x460874(%esi)
4099e5:	80 c2 30             	add    $0x30,%dl
4099e8:	88 13                	mov    %dl,(%ebx)
4099ea:	43                   	inc    %ebx
4099eb:	49                   	dec    %ecx
4099ec:	09 c0                	or     %eax,%eax
4099ee:	75 ed                	jne    0x4099dd
4099f0:	09 c9                	or     %ecx,%ecx
4099f2:	7f e9                	jg     0x4099dd
4099f4:	4b                   	dec    %ebx
4099f5:	8a 03                	mov    (%ebx),%al
4099f7:	aa                   	stos   %al,%es:(%edi)
4099f8:	39 e3                	cmp    %esp,%ebx
4099fa:	75 f8                	jne    0x4099f4
4099fc:	58                   	pop    %eax
4099fd:	5e                   	pop    %esi
4099fe:	c3                   	ret
4099ff:	90                   	nop
409a00:	55                   	push   %ebp
409a01:	8b ec                	mov    %esp,%ebp
409a03:	83 c4 d4             	add    $0xffffffd4,%esp
409a06:	57                   	push   %edi
409a07:	56                   	push   %esi
409a08:	53                   	push   %ebx
409a09:	89 45 fc             	mov    %eax,-0x4(%ebp)
409a0c:	a0 0f 08 47 00       	mov    0x47080f,%al
409a11:	88 45 fb             	mov    %al,-0x5(%ebp)
409a14:	a0 0e 08 47 00       	mov    0x47080e,%al
409a19:	88 45 fa             	mov    %al,-0x6(%ebp)
409a1c:	a1 08 08 47 00       	mov    0x470808,%eax
409a21:	89 45 f4             	mov    %eax,-0xc(%ebp)
409a24:	a0 0c 08 47 00       	mov    0x47080c,%al
409a29:	88 45 f3             	mov    %al,-0xd(%ebp)
409a2c:	a0 0d 08 47 00       	mov    0x47080d,%al
409a31:	88 45 f2             	mov    %al,-0xe(%ebp)
409a34:	c7 45 ec 00 00 00 00 	movl   $0x0,-0x14(%ebp)
409a3b:	b8 13 00 00 00       	mov    $0x13,%eax
409a40:	80 f9 00             	cmp    $0x0,%cl
409a43:	75 17                	jne    0x409a5c
409a45:	8b 45 0c             	mov    0xc(%ebp),%eax
409a48:	83 f8 02             	cmp    $0x2,%eax
409a4b:	7d 05                	jge    0x409a52
409a4d:	b8 02 00 00 00       	mov    $0x2,%eax
409a52:	83 f8 12             	cmp    $0x12,%eax
409a55:	7e 05                	jle    0x409a5c
409a57:	b8 12 00 00 00       	mov    $0x12,%eax
409a5c:	89 45 0c             	mov    %eax,0xc(%ebp)
409a5f:	50                   	push   %eax
409a60:	b8 0f 27 00 00       	mov    $0x270f,%eax
409a65:	80 7d 10 02          	cmpb   $0x2,0x10(%ebp)
409a69:	72 03                	jb     0x409a6e
409a6b:	8b 45 08             	mov    0x8(%ebp),%eax
409a6e:	50                   	push   %eax
409a6f:	8d 45 d4             	lea    -0x2c(%ebp),%eax
409a72:	e8 5d 02 00 00       	call   0x409cd4
409a77:	8b 7d fc             	mov    -0x4(%ebp),%edi
409a7a:	0f b7 45 d4          	movzwl -0x2c(%ebp),%eax
409a7e:	2d ff 7f 00 00       	sub    $0x7fff,%eax
409a83:	83 f8 02             	cmp    $0x2,%eax
409a86:	73 1a                	jae    0x409aa2
409a88:	89 c1                	mov    %eax,%ecx
409a8a:	e8 70 00 00 00       	call   0x409aff
409a8f:	8d b4 49 f0 9a 40 00 	lea    0x409af0(%ecx,%ecx,2),%esi
409a96:	03 75 ec             	add    -0x14(%ebp),%esi
409a99:	b9 03 00 00 00       	mov    $0x3,%ecx
409a9e:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)
409aa0:	eb 2d                	jmp    0x409acf
409aa2:	8d 75 d7             	lea    -0x29(%ebp),%esi
409aa5:	0f b6 5d 10          	movzbl 0x10(%ebp),%ebx
409aa9:	80 fb 01             	cmp    $0x1,%bl
409aac:	74 10                	je     0x409abe
409aae:	80 fb 04             	cmp    $0x4,%bl
409ab1:	77 09                	ja     0x409abc
409ab3:	0f bf 45 d4          	movswl -0x2c(%ebp),%eax
409ab7:	3b 45 0c             	cmp    0xc(%ebp),%eax
409aba:	7e 02                	jle    0x409abe
409abc:	b3 00                	mov    $0x0,%bl
409abe:	8d 1c 9d dc 9a 40 00 	lea    0x409adc(,%ebx,4),%ebx
409ac5:	03 5d ec             	add    -0x14(%ebp),%ebx
409ac8:	8b 1b                	mov    (%ebx),%ebx
409aca:	03 5d ec             	add    -0x14(%ebp),%ebx
409acd:	ff d3                	call   *%ebx
409acf:	89 f8                	mov    %edi,%eax
409ad1:	2b 45 fc             	sub    -0x4(%ebp),%eax
409ad4:	5b                   	pop    %ebx
409ad5:	5e                   	pop    %esi
409ad6:	5f                   	pop    %edi
409ad7:	e9 f1 01 00 00       	jmp    0x409ccd
409adc:	09 9b 40 00 65 9b    	or     %ebx,-0x649affc0(%ebx)
409ae2:	40                   	inc    %eax
409ae3:	00 9c 9b 40 00 9c 9b 	add    %bl,-0x6463ffc0(%ebx,%ebx,4)
409aea:	40                   	inc    %eax
409aeb:	00 06                	add    %al,(%esi)
409aed:	9c                   	pushf
409aee:	40                   	inc    %eax
409aef:	00 49 4e             	add    %cl,0x4e(%ecx)
409af2:	46                   	inc    %esi
409af3:	4e                   	dec    %esi
409af4:	41                   	inc    %ecx
409af5:	4e                   	dec    %esi
409af6:	ac                   	lods   %ds:(%esi),%al
409af7:	08 c0                	or     %al,%al
409af9:	75 03                	jne    0x409afe
409afb:	b0 30                	mov    $0x30,%al
409afd:	4e                   	dec    %esi
409afe:	c3                   	ret
409aff:	80 7d d6 00          	cmpb   $0x0,-0x2a(%ebp)
409b03:	74 03                	je     0x409b08
409b05:	b0 2d                	mov    $0x2d,%al
409b07:	aa                   	stos   %al,%es:(%edi)
409b08:	c3                   	ret
409b09:	e8 f1 ff ff ff       	call   0x409aff
409b0e:	0f bf 4d d4          	movswl -0x2c(%ebp),%ecx
409b12:	31 d2                	xor    %edx,%edx
409b14:	3b 4d 0c             	cmp    0xc(%ebp),%ecx
409b17:	7f 1d                	jg     0x409b36
409b19:	83 f9 fd             	cmp    $0xfffffffd,%ecx
409b1c:	7c 18                	jl     0x409b36
409b1e:	09 c9                	or     %ecx,%ecx
409b20:	7f 1a                	jg     0x409b3c
409b22:	b0 30                	mov    $0x30,%al
409b24:	aa                   	stos   %al,%es:(%edi)
409b25:	80 3e 00             	cmpb   $0x0,(%esi)
409b28:	74 3a                	je     0x409b64
409b2a:	8a 45 fb             	mov    -0x5(%ebp),%al
409b2d:	aa                   	stos   %al,%es:(%edi)
409b2e:	f7 d9                	neg    %ecx
409b30:	b0 30                	mov    $0x30,%al
409b32:	f3 aa                	rep stos %al,%es:(%edi)
409b34:	eb 1a                	jmp    0x409b50
409b36:	b9 01 00 00 00       	mov    $0x1,%ecx
409b3b:	42                   	inc    %edx
409b3c:	ac                   	lods   %ds:(%esi),%al
409b3d:	08 c0                	or     %al,%al
409b3f:	74 17                	je     0x409b58
409b41:	aa                   	stos   %al,%es:(%edi)
409b42:	e2 f8                	loop   0x409b3c
409b44:	ac                   	lods   %ds:(%esi),%al
409b45:	08 c0                	or     %al,%al
409b47:	74 13                	je     0x409b5c
409b49:	88 c4                	mov    %al,%ah
409b4b:	8a 45 fb             	mov    -0x5(%ebp),%al
409b4e:	66 ab                	stos   %ax,%es:(%edi)
409b50:	ac                   	lods   %ds:(%esi),%al
409b51:	08 c0                	or     %al,%al
409b53:	74 07                	je     0x409b5c
409b55:	aa                   	stos   %al,%es:(%edi)
409b56:	eb f8                	jmp    0x409b50
409b58:	b0 30                	mov    $0x30,%al
409b5a:	f3 aa                	rep stos %al,%es:(%edi)
409b5c:	09 d2                	or     %edx,%edx
409b5e:	74 04                	je     0x409b64
409b60:	31 c0                	xor    %eax,%eax
409b62:	eb 1e                	jmp    0x409b82
409b64:	c3                   	ret
409b65:	e8 95 ff ff ff       	call   0x409aff
409b6a:	e8 87 ff ff ff       	call   0x409af6
409b6f:	8a 65 fb             	mov    -0x5(%ebp),%ah
409b72:	66 ab                	stos   %ax,%es:(%edi)
409b74:	8b 4d 0c             	mov    0xc(%ebp),%ecx
409b77:	49                   	dec    %ecx
409b78:	e8 79 ff ff ff       	call   0x409af6
409b7d:	aa                   	stos   %al,%es:(%edi)
409b7e:	e2 f8                	loop   0x409b78
409b80:	b4 2b                	mov    $0x2b,%ah
409b82:	8b 4d 08             	mov    0x8(%ebp),%ecx
409b85:	83 f9 04             	cmp    $0x4,%ecx
409b88:	76 02                	jbe    0x409b8c
409b8a:	31 c9                	xor    %ecx,%ecx
409b8c:	b0 45                	mov    $0x45,%al
409b8e:	8a 5d d7             	mov    -0x29(%ebp),%bl
409b91:	0f bf 55 d4          	movswl -0x2c(%ebp),%edx
409b95:	4a                   	dec    %edx
409b96:	e8 21 fe ff ff       	call   0x4099bc
409b9b:	c3                   	ret
409b9c:	e8 5e ff ff ff       	call   0x409aff
409ba1:	8b 55 08             	mov    0x8(%ebp),%edx
409ba4:	83 fa 12             	cmp    $0x12,%edx
409ba7:	72 05                	jb     0x409bae
409ba9:	ba 12 00 00 00       	mov    $0x12,%edx
409bae:	0f bf 4d d4          	movswl -0x2c(%ebp),%ecx
409bb2:	09 c9                	or     %ecx,%ecx
409bb4:	7f 05                	jg     0x409bbb
409bb6:	b0 30                	mov    $0x30,%al
409bb8:	aa                   	stos   %al,%es:(%edi)
409bb9:	eb 2a                	jmp    0x409be5
409bbb:	31 db                	xor    %ebx,%ebx
409bbd:	80 7d 10 02          	cmpb   $0x2,0x10(%ebp)
409bc1:	74 0a                	je     0x409bcd
409bc3:	89 c8                	mov    %ecx,%eax
409bc5:	48                   	dec    %eax
409bc6:	b3 03                	mov    $0x3,%bl
409bc8:	f6 f3                	div    %bl
409bca:	88 e3                	mov    %ah,%bl
409bcc:	43                   	inc    %ebx
409bcd:	e8 24 ff ff ff       	call   0x409af6
409bd2:	aa                   	stos   %al,%es:(%edi)
409bd3:	49                   	dec    %ecx
409bd4:	74 0f                	je     0x409be5
409bd6:	4b                   	dec    %ebx
409bd7:	75 f4                	jne    0x409bcd
409bd9:	8a 45 fa             	mov    -0x6(%ebp),%al
409bdc:	84 c0                	test   %al,%al
409bde:	74 ed                	je     0x409bcd
409be0:	aa                   	stos   %al,%es:(%edi)
409be1:	b3 03                	mov    $0x3,%bl
409be3:	eb e8                	jmp    0x409bcd
409be5:	09 d2                	or     %edx,%edx
409be7:	74 1c                	je     0x409c05
409be9:	8a 45 fb             	mov    -0x5(%ebp),%al
409bec:	84 c0                	test   %al,%al