40285f:	ff 15 5c 71 40 00    	call   *0x40715c
402865:	53                   	push   %ebx
402866:	53                   	push   %ebx
402867:	ff 75 08             	push   0x8(%ebp)
40286a:	6a ff                	push   $0xffffffff
40286c:	e8 8a 07 00 00       	call   0x402ffb
402871:	89 45 f4             	mov    %eax,-0xc(%ebp)
402874:	ff 75 08             	push   0x8(%ebp)
402877:	ff 15 14 71 40 00    	call   *0x407114
40287d:	39 5d f4             	cmp    %ebx,-0xc(%ebp)
402880:	6a f3                	push   $0xfffffff3
402882:	5e                   	pop    %esi
402883:	7d 13                	jge    0x402898
402885:	6a ef                	push   $0xffffffef
402887:	5e                   	pop    %esi
402888:	ff 75 b4             	push   -0x4c(%ebp)
40288b:	ff 15 28 71 40 00    	call   *0x407128
402891:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
402898:	56                   	push   %esi
402899:	e9 06 fa ff ff       	jmp    0x4022a4
40289e:	53                   	push   %ebx
40289f:	e8 66 02 00 00       	call   0x402b0a
4028a4:	3b 05 4c 37 42 00    	cmp    0x42374c,%eax
4028aa:	59                   	pop    %ecx
4028ab:	89 45 ec             	mov    %eax,-0x14(%ebp)
4028ae:	89 55 f0             	mov    %edx,-0x10(%ebp)
4028b1:	0f 83 cc fe ff ff    	jae    0x402783
4028b7:	8b f0                	mov    %eax,%esi
4028b9:	8b 45 d4             	mov    -0x2c(%ebp),%eax
4028bc:	69 f6 18 04 00 00    	imul   $0x418,%esi,%esi
4028c2:	03 35 48 37 42 00    	add    0x423748,%esi
4028c8:	3b c3                	cmp    %ebx,%eax
4028ca:	7c 17                	jl     0x4028e3
4028cc:	8b 0c 86             	mov    (%esi,%eax,4),%ecx
4028cf:	75 0f                	jne    0x4028e0
4028d1:	83 c6 18             	add    $0x18,%esi
4028d4:	56                   	push   %esi
4028d5:	57                   	push   %edi
4028d6:	e8 ff 36 00 00       	call   0x405fda
4028db:	e9 d8 00 00 00       	jmp    0x4029b8
4028e0:	51                   	push   %ecx
4028e1:	eb 7c                	jmp    0x40295f
4028e3:	83 c9 ff             	or     $0xffffffff,%ecx
4028e6:	2b c8                	sub    %eax,%ecx
4028e8:	89 4d d4             	mov    %ecx,-0x2c(%ebp)
4028eb:	74 10                	je     0x4028fd
4028ed:	6a 01                	push   $0x1
4028ef:	e8 16 02 00 00       	call   0x402b0a
4028f4:	59                   	pop    %ecx
4028f5:	89 55 b4             	mov    %edx,-0x4c(%ebp)
4028f8:	89 45 d0             	mov    %eax,-0x30(%ebp)
4028fb:	eb 10                	jmp    0x40290d
4028fd:	ff 75 dc             	push   -0x24(%ebp)
402900:	8d 46 18             	lea    0x18(%esi),%eax
402903:	50                   	push   %eax
402904:	e8 f3 36 00 00       	call   0x405ffc
402909:	80 4e 09 01          	orb    $0x1,0x9(%esi)
40290d:	8b 45 d4             	mov    -0x2c(%ebp),%eax
402910:	8b 4d d0             	mov    -0x30(%ebp),%ecx
402913:	89 0c 86             	mov    %ecx,(%esi,%eax,4)
402916:	39 5d d8             	cmp    %ebx,-0x28(%ebp)
402919:	0f 84 99 00 00 00    	je     0x4029b8
40291f:	ff 75 ec             	push   -0x14(%ebp)
402922:	e8 56 e8 ff ff       	call   0x40117d
402927:	e9 8c 00 00 00       	jmp    0x4029b8
40292c:	53                   	push   %ebx
40292d:	e8 d8 01 00 00       	call   0x402b0a
402932:	83 f8 20             	cmp    $0x20,%eax
402935:	59                   	pop    %ecx
402936:	89 55 f0             	mov    %edx,-0x10(%ebp)
402939:	0f 83 44 fe ff ff    	jae    0x402783
40293f:	39 5d d8             	cmp    %ebx,-0x28(%ebp)
402942:	74 23                	je     0x402967
402944:	39 5d d4             	cmp    %ebx,-0x2c(%ebp)
402947:	74 0f                	je     0x402958
402949:	50                   	push   %eax
40294a:	e8 4a e9 ff ff       	call   0x401299
40294f:	53                   	push   %ebx
402950:	53                   	push   %ebx
402951:	e8 99 e8 ff ff       	call   0x4011ef
402956:	eb 60                	jmp    0x4029b8
402958:	53                   	push   %ebx
402959:	e8 84 e9 ff ff       	call   0x4012e2
40295e:	50                   	push   %eax
40295f:	57                   	push   %edi
402960:	e8 d3 35 00 00       	call   0x405f38
402965:	eb 51                	jmp    0x4029b8
402967:	39 5d d4             	cmp    %ebx,-0x2c(%ebp)
40296a:	74 12                	je     0x40297e
40296c:	8b 15 14 37 42 00    	mov    0x423714,%edx
402972:	8b 4d d0             	mov    -0x30(%ebp),%ecx
402975:	89 8c 82 94 00 00 00 	mov    %ecx,0x94(%edx,%eax,4)
40297c:	eb 3a                	jmp    0x4029b8
40297e:	8b 0d 14 37 42 00    	mov    0x423714,%ecx
402984:	ff b4 81 94 00 00 00 	push   0x94(%ecx,%eax,4)
40298b:	57                   	push   %edi
40298c:	e8 6b 36 00 00       	call   0x405ffc
402991:	eb 25                	jmp    0x4029b8
402993:	8b 0d 08 0d 42 00    	mov    0x420d08,%ecx
402999:	53                   	push   %ebx
40299a:	23 c8                	and    %eax,%ecx
40299c:	51                   	push   %ecx
40299d:	6a 0b                	push   $0xb
40299f:	ff 75 f8             	push   -0x8(%ebp)
4029a2:	ff 15 00 72 40 00    	call   *0x407200
4029a8:	39 5d cc             	cmp    %ebx,-0x34(%ebp)
4029ab:	74 0b                	je     0x4029b8
4029ad:	53                   	push   %ebx
4029ae:	53                   	push   %ebx
4029af:	ff 75 f8             	push   -0x8(%ebp)
4029b2:	ff 15 fc 71 40 00    	call   *0x4071fc
4029b8:	8b 45 fc             	mov    -0x4(%ebp),%eax
4029bb:	01 05 a8 37 42 00    	add    %eax,0x4237a8
4029c1:	33 c0                	xor    %eax,%eax
4029c3:	5f                   	pop    %edi
4029c4:	5e                   	pop    %esi
4029c5:	5b                   	pop    %ebx
4029c6:	c9                   	leave
4029c7:	c2 04 00             	ret    $0x4
4029ca:	c3                   	ret
4029cb:	29 40 00             	sub    %eax,0x0(%eax)
4029ce:	90                   	nop
4029cf:	14 40                	adc    $0x40,%al
4029d1:	00 9c 14 40 00 b7 14 	add    %bl,0x14b70040(%esp,%edx,1)
4029d8:	40                   	inc    %eax
4029d9:	00 ca                	add    %cl,%dl
4029db:	14 40                	adc    $0x40,%al
4029dd:	00 d6                	add    %dl,%dh
4029df:	14 40                	adc    $0x40,%al
4029e1:	00 f4                	add    %dh,%ah
4029e3:	14 40                	adc    $0x40,%al
4029e5:	00 6f 15             	add    %ch,0x15(%edi)
4029e8:	40                   	inc    %eax
4029e9:	00 9d 15 40 00 bb    	add    %bl,-0x44ffbfeb(%ebp)
4029ef:	15 40 00 59 16       	adc    $0x16590040,%eax
4029f4:	40                   	inc    %eax
4029f5:	00 02                	add    %al,(%edx)
4029f7:	15 40 00 41 15       	adc    $0x15410040,%eax
4029fc:	40                   	inc    %eax
4029fd:	00 62 15             	add    %ah,0x15(%edx)
402a00:	40                   	inc    %eax
402a01:	00 6a 16             	add    %ch,0x16(%edx)
402a04:	40                   	inc    %eax
402a05:	00 bb 16 40 00 1f    	add    %bh,0x1f004016(%ebx)
402a0b:	17                   	pop    %ss
402a0c:	40                   	inc    %eax
402a0d:	00 46 17             	add    %al,0x17(%esi)
402a10:	40                   	inc    %eax
402a11:	00 59 17             	add    %bl,0x17(%ecx)
402a14:	40                   	inc    %eax
402a15:	00 fd                	add    %bh,%ch
402a17:	18 40 00             	sbb    %al,0x0(%eax)
402a1a:	00 19                	add    %bl,(%ecx)
402a1c:	40                   	inc    %eax
402a1d:	00 32                	add    %dh,(%edx)
402a1f:	19 40 00             	sbb    %eax,0x0(%eax)
402a22:	47                   	inc    %edi
402a23:	19 40 00             	sbb    %eax,0x0(%eax)
402a26:	59                   	pop    %ecx
402a27:	19 40 00             	sbb    %eax,0x0(%eax)
402a2a:	ed                   	in     (%dx),%eax
402a2b:	19 40 00             	sbb    %eax,0x0(%eax)
402a2e:	1e                   	push   %ds
402a2f:	1a 40 00             	sbb    0x0(%eax),%al
402a32:	5e                   	pop    %esi
402a33:	1a 40 00             	sbb    0x0(%eax),%al
402a36:	9e                   	sahf
402a37:	1a 40 00             	sbb    0x0(%eax),%al
402a3a:	3f                   	aas
402a3b:	1b 40 00             	sbb    0x0(%eax),%eax
402a3e:	63 1b                	arpl   %ebx,(%ebx)
402a40:	40                   	inc    %eax
402a41:	00 0a                	add    %cl,(%edx)
402a43:	1c 40                	sbb    $0x40,%al
402a45:	00 0a                	add    %cl,(%edx)
402a47:	1c 40                	sbb    $0x40,%al
402a49:	00 da                	add    %bl,%dl
402a4b:	1c 40                	sbb    $0x40,%al
402a4d:	00 fb                	add    %bh,%bl
402a4f:	1c 40                	sbb    $0x40,%al
402a51:	00 20                	add    %ah,(%eax)
402a53:	1d 40 00 41 1d       	sbb    $0x1d410040,%eax
402a58:	40                   	inc    %eax
402a59:	00 ff                	add    %bh,%bh
402a5b:	1d 40 00 8f 1e       	sbb    $0x1e8f0040,%eax
402a60:	40                   	inc    %eax
402a61:	00 c3                	add    %al,%bl
402a63:	1e                   	push   %ds
402a64:	40                   	inc    %eax
402a65:	00 48 1f             	add    %cl,0x1f(%eax)
402a68:	40                   	inc    %eax
402a69:	00 98 1f 40 00 c8    	add    %bl,-0x37ffbfe1(%eax)
402a6f:	1f                   	pop    %ds
402a70:	40                   	inc    %eax
402a71:	00 69 20             	add    %ch,0x20(%ecx)
402a74:	40                   	inc    %eax
402a75:	00 38                	add    %bh,(%eax)
402a77:	21 40 00             	and    %eax,0x0(%eax)
402a7a:	b2 22                	mov    $0x22,%dl
402a7c:	40                   	inc    %eax
402a7d:	00 34 23             	add    %dh,(%ebx,%eiz,1)
402a80:	40                   	inc    %eax
402a81:	00 63 23             	add    %ah,0x23(%ebx)
402a84:	40                   	inc    %eax
402a85:	00 a7 23 40 00 e8    	add    %ah,-0x17ffbfdd(%edi)
402a8b:	23 40 00             	and    0x0(%eax),%eax
402a8e:	3d 24 40 00 da       	cmp    $0xda004024,%eax
402a93:	24 40                	and    $0x40,%al
402a95:	00 4c 25 40          	add    %cl,0x40(%ebp,%eiz,1)
402a99:	00 b4 25 40 00 c8 25 	add    %dh,0x25c80040(%ebp,%eiz,1)
402aa0:	40                   	inc    %eax
402aa1:	00 ea                	add    %ch,%dl
402aa3:	25 40 00 31 26       	and    $0x26310040,%eax
402aa8:	40                   	inc    %eax
402aa9:	00 ee                	add    %ch,%dh
402aab:	26 40                	es inc %eax
402aad:	00 21                	add    %ah,(%ecx)
402aaf:	27                   	daa
402ab0:	40                   	inc    %eax
402ab1:	00 3b                	add    %bh,(%ebx)
402ab3:	27                   	daa
402ab4:	40                   	inc    %eax
402ab5:	00 65 27             	add    %ah,0x27(%ebp)
402ab8:	40                   	inc    %eax
402ab9:	00 a3 27 40 00 9e    	add    %ah,-0x61ffbfd9(%ebx)
402abf:	28 40 00             	sub    %al,0x0(%eax)
402ac2:	2c 29                	sub    $0x29,%al
402ac4:	40                   	inc    %eax
402ac5:	00 b8 29 40 00 b8    	add    %bh,-0x47ffbfd7(%eax)
402acb:	29 40 00             	sub    %eax,0x0(%eax)
402ace:	93                   	xchg   %eax,%ebx
402acf:	29 40 00             	sub    %eax,0x0(%eax)
402ad2:	ca 1a 40             	lret   $0x401a
402ad5:	00 ce                	add    %cl,%dh
402ad7:	1a 40 00             	sbb    0x0(%eax),%al
402ada:	d2 1a                	rcrb   %cl,(%edx)
402adc:	40                   	inc    %eax
402add:	00 d7                	add    %dl,%bh
402adf:	1a 40 00             	sbb    0x0(%eax),%al
402ae2:	e4 1a                	in     $0x1a,%al
402ae4:	40                   	inc    %eax
402ae5:	00 e8                	add    %ch,%al
402ae7:	1a 40 00             	sbb    0x0(%eax),%al
402aea:	ec                   	in     (%dx),%al
402aeb:	1a 40 00             	sbb    0x0(%eax),%al
402aee:	f2 1a 40 00          	repnz sbb 0x0(%eax),%al
402af2:	fb                   	sti
402af3:	1a 40 00             	sbb    0x0(%eax),%al
402af6:	05 1b 40 00 12       	add    $0x1200401b,%eax
402afb:	1b 40 00             	sbb    0x0(%eax),%eax
402afe:	2a 1b                	sub    (%ebx),%bl
402b00:	40                   	inc    %eax
402b01:	00 2e                	add    %ch,(%esi)
402b03:	1b 40 00             	sbb    0x0(%eax),%eax
402b06:	32 1b                	xor    (%ebx),%bl
402b08:	40                   	inc    %eax
402b09:	00 8b 44 24 04 8b    	add    %cl,-0x74fbdbbc(%ebx)
402b0f:	0d 24 a8 40 00       	or     $0x40a824,%eax
402b14:	56                   	push   %esi
402b15:	ff 34 81             	push   (%ecx,%eax,4)
402b18:	6a 00                	push   $0x0
402b1a:	e8 dd 34 00 00       	call   0x405ffc
402b1f:	8b f0                	mov    %eax,%esi
402b21:	56                   	push   %esi
402b22:	e8 2a 34 00 00       	call   0x405f51
402b27:	0f be 16             	movsbl (%esi),%edx
402b2a:	5e                   	pop    %esi
402b2b:	c3                   	ret
402b2c:	56                   	push   %esi
402b2d:	8b 74 24 08          	mov    0x8(%esp),%esi
402b31:	85 f6                	test   %esi,%esi
402b33:	57                   	push   %edi
402b34:	8b c6                	mov    %esi,%eax
402b36:	7d 02                	jge    0x402b3a
402b38:	f7 d8                	neg    %eax
402b3a:	8b 15 24 a8 40 00    	mov    0x40a824,%edx
402b40:	8b c8                	mov    %eax,%ecx
402b42:	83 e1 0f             	and    $0xf,%ecx
402b45:	c1 f8 04             	sar    $0x4,%eax
402b48:	ff 34 8a             	push   (%edx,%ecx,4)
402b4b:	c1 e0 0a             	shl    $0xa,%eax
402b4e:	05 e8 93 40 00       	add    $0x4093e8,%eax
402b53:	50                   	push   %eax
402b54:	e8 a3 34 00 00       	call   0x405ffc
402b59:	85 f6                	test   %esi,%esi
402b5b:	8b f8                	mov    %eax,%edi
402b5d:	7d 06                	jge    0x402b65
402b5f:	57                   	push   %edi
402b60:	e8 df 36 00 00       	call   0x406244
402b65:	8b c7                	mov    %edi,%eax
402b67:	5f                   	pop    %edi
402b68:	5e                   	pop    %esi
402b69:	c2 04 00             	ret    $0x4
402b6c:	55                   	push   %ebp
402b6d:	8b ec                	mov    %esp,%ebp
402b6f:	8d 45 08             	lea    0x8(%ebp),%eax
402b72:	50                   	push   %eax
402b73:	8b 45 08             	mov    0x8(%ebp),%eax
402b76:	0d 20 00 10 00       	or     $0x100020,%eax
402b7b:	50                   	push   %eax
402b7c:	6a 22                	push   $0x22
402b7e:	e8 a9 ff ff ff       	call   0x402b2c
402b83:	50                   	push   %eax
402b84:	a1 24 a8 40 00       	mov    0x40a824,%eax
402b89:	ff 70 04             	push   0x4(%eax)
402b8c:	e8 13 00 00 00       	call   0x402ba4
402b91:	50                   	push   %eax
402b92:	e8 c9 32 00 00       	call   0x405e60
402b97:	f7 d8                	neg    %eax
402b99:	1b c0                	sbb    %eax,%eax
402b9b:	f7 d0                	not    %eax
402b9d:	23 45 08             	and    0x8(%ebp),%eax
402ba0:	5d                   	pop    %ebp
402ba1:	c2 04 00             	ret    $0x4
402ba4:	8b 44 24 04          	mov    0x4(%esp),%eax
402ba8:	85 c0                	test   %eax,%eax
402baa:	7c 0d                	jl     0x402bb9
402bac:	8b 0d a4 37 42 00    	mov    0x4237a4,%ecx
402bb2:	8d 84 01 01 00 00 80 	lea    -0x7fffffff(%ecx,%eax,1),%eax
402bb9:	c2 04 00             	ret    $0x4
402bbc:	55                   	push   %ebp
402bbd:	8b ec                	mov    %esp,%ebp
402bbf:	8d 45 10             	lea    0x10(%ebp),%eax
402bc2:	50                   	push   %eax
402bc3:	8b 45 10             	mov    0x10(%ebp),%eax
402bc6:	0d 20 00 10 00       	or     $0x100020,%eax
402bcb:	50                   	push   %eax
402bcc:	ff 75 0c             	push   0xc(%ebp)
402bcf:	ff 75 08             	push   0x8(%ebp)
402bd2:	e8 cd ff ff ff       	call   0x402ba4
402bd7:	50                   	push   %eax
402bd8:	e8 b1 32 00 00       	call   0x405e8e
402bdd:	f7 d8                	neg    %eax
402bdf:	1b c0                	sbb    %eax,%eax
402be1:	f7 d0                	not    %eax
402be3:	23 45 10             	and    0x10(%ebp),%eax
402be6:	5d                   	pop    %ebp
402be7:	c2 0c 00             	ret    $0xc
402bea:	55                   	push   %ebp
402beb:	8b ec                	mov    %esp,%ebp
402bed:	56                   	push   %esi
402bee:	8b 75 0c             	mov    0xc(%ebp),%esi
402bf1:	80 3e 00             	cmpb   $0x0,(%esi)
402bf4:	75 07                	jne    0x402bfd
402bf6:	b8 eb 03 00 00       	mov    $0x3eb,%eax
402bfb:	eb 2c                	jmp    0x402c29
402bfd:	81 4d 10 20 00 10 00 	orl    $0x100020,0x10(%ebp)
402c04:	8d 45 10             	lea    0x10(%ebp),%eax
402c07:	50                   	push   %eax
402c08:	ff 75 08             	push   0x8(%ebp)