40391b:	85 c9                	test   %ecx,%ecx
40391d:	75 32                	jne    0x403951
40391f:	8b ce                	mov    %esi,%ecx
403921:	e8 58 fb ff ff       	call   0x40347e
403926:	5e                   	pop    %esi
403927:	eb 1a                	jmp    0x403943
403929:	a1 b4 16 4c 00       	mov    0x4c16b4,%eax
40392e:	8b 00                	mov    (%eax),%eax
403930:	ff 70 08             	push   0x8(%eax)
403933:	ff 15 c8 d0 48 00    	call   *0x48d0c8
403939:	b9 b0 16 4c 00       	mov    $0x4c16b0,%ecx
40393e:	e8 30 00 00 00       	call   0x403973
403943:	83 3d b8 16 4c 00 00 	cmpl   $0x0,0x4c16b8
40394a:	75 dd                	jne    0x403929
40394c:	e9 65 00 00 00       	jmp    0x4039b6
403951:	a1 88 16 4c 00       	mov    0x4c1688,%eax
403956:	8b 44 88 fc          	mov    -0x4(%eax,%ecx,4),%eax
40395a:	8b 00                	mov    (%eax),%eax
40395c:	85 c0                	test   %eax,%eax
40395e:	74 0a                	je     0x40396a
403960:	ff 30                	push   (%eax)
403962:	ff 15 24 d6 48 00    	call   *0x48d624
403968:	eb ab                	jmp    0x403915
40396a:	8b ce                	mov    %esi,%ecx
40396c:	e8 d0 81 01 00       	call   0x41bb41
403971:	eb a2                	jmp    0x403915
403973:	56                   	push   %esi
403974:	8b f1                	mov    %ecx,%esi
403976:	8b 4e 04             	mov    0x4(%esi),%ecx
403979:	85 c9                	test   %ecx,%ecx
40397b:	74 1a                	je     0x403997
40397d:	8b 41 08             	mov    0x8(%ecx),%eax
403980:	51                   	push   %ecx
403981:	89 46 04             	mov    %eax,0x4(%esi)
403984:	e8 15 00 00 00       	call   0x40399e
403989:	8b 46 04             	mov    0x4(%esi),%eax
40398c:	85 c0                	test   %eax,%eax
40398e:	74 09                	je     0x403999
403990:	83 60 04 00          	andl   $0x0,0x4(%eax)
403994:	ff 4e 08             	decl   0x8(%esi)
403997:	5e                   	pop    %esi
403998:	c3                   	ret
403999:	83 26 00             	andl   $0x0,(%esi)
40399c:	eb f6                	jmp    0x403994
40399e:	56                   	push   %esi
40399f:	8b f1                	mov    %ecx,%esi
4039a1:	ff 36                	push   (%esi)
4039a3:	e8 b6 bb 01 00       	call   0x41f55e
4039a8:	56                   	push   %esi
4039a9:	e8 b0 bb 01 00       	call   0x41f55e
4039ae:	59                   	pop    %ecx
4039af:	59                   	pop    %ecx
4039b0:	8b c6                	mov    %esi,%eax
4039b2:	5e                   	pop    %esi
4039b3:	c2 04 00             	ret    $0x4
4039b6:	83 3d 54 16 4c 00 00 	cmpl   $0x0,0x4c1654
4039bd:	75 01                	jne    0x4039c0
4039bf:	c3                   	ret
4039c0:	56                   	push   %esi
4039c1:	e9 33 93 07 00       	jmp    0x47ccf9
4039c6:	57                   	push   %edi
4039c7:	8b f9                	mov    %ecx,%edi
4039c9:	8b 0f                	mov    (%edi),%ecx
4039cb:	85 c9                	test   %ecx,%ecx
4039cd:	75 06                	jne    0x4039d5
4039cf:	83 67 08 00          	andl   $0x0,0x8(%edi)
4039d3:	5f                   	pop    %edi
4039d4:	c3                   	ret
4039d5:	56                   	push   %esi
4039d6:	e9 e3 a7 07 00       	jmp    0x47e1be
4039db:	55                   	push   %ebp
4039dc:	8b ec                	mov    %esp,%ebp
4039de:	83 ec 1c             	sub    $0x1c,%esp
4039e1:	53                   	push   %ebx
4039e2:	33 c0                	xor    %eax,%eax
4039e4:	33 db                	xor    %ebx,%ebx
4039e6:	89 45 f4             	mov    %eax,-0xc(%ebp)
4039e9:	89 45 f8             	mov    %eax,-0x8(%ebp)
4039ec:	88 45 fc             	mov    %al,-0x4(%ebp)
4039ef:	8b 45 0c             	mov    0xc(%ebp),%eax
4039f2:	43                   	inc    %ebx
4039f3:	53                   	push   %ebx
4039f4:	ff 30                	push   (%eax)
4039f6:	8d 4d e8             	lea    -0x18(%ebp),%ecx
4039f9:	e8 ab 07 00 00       	call   0x4041a9
4039fe:	85 c0                	test   %eax,%eax
403a00:	0f 84 c9 f5 06 00    	je     0x472fcf
403a06:	32 db                	xor    %bl,%bl
403a08:	8a c3                	mov    %bl,%al
403a0a:	5b                   	pop    %ebx
403a0b:	c9                   	leave
403a0c:	c2 08 00             	ret    $0x8
403a0f:	55                   	push   %ebp
403a10:	8b ec                	mov    %esp,%ebp
403a12:	83 e4 f8             	and    $0xfffffff8,%esp
403a15:	a1 8c 21 4c 00       	mov    0x4c218c,%eax
403a1a:	83 ec 20             	sub    $0x20,%esp
403a1d:	80 78 1d 00          	cmpb   $0x0,0x1d(%eax)
403a21:	56                   	push   %esi
403a22:	57                   	push   %edi
403a23:	0f 84 96 e4 06 00    	je     0x471ebf
403a29:	8b 45 08             	mov    0x8(%ebp),%eax
403a2c:	33 ff                	xor    %edi,%edi
403a2e:	33 f6                	xor    %esi,%esi
403a30:	46                   	inc    %esi
403a31:	8d 4c 24 08          	lea    0x8(%esp),%ecx
403a35:	a3 b8 10 4c 00       	mov    %eax,0x4c10b8
403a3a:	89 3d bc 10 4c 00    	mov    %edi,0x4c10bc
403a40:	89 3d b0 10 4c 00    	mov    %edi,0x4c10b0
403a46:	89 7c 24 08          	mov    %edi,0x8(%esp)
403a4a:	89 7c 24 10          	mov    %edi,0x10(%esp)
403a4e:	89 74 24 14          	mov    %esi,0x14(%esp)
403a52:	89 7c 24 18          	mov    %edi,0x18(%esp)
403a56:	89 7c 24 20          	mov    %edi,0x20(%esp)
403a5a:	89 74 24 24          	mov    %esi,0x24(%esp)
403a5e:	e8 bd f1 00 00       	call   0x412c20
403a63:	8d 44 24 18          	lea    0x18(%esp),%eax
403a67:	c7 44 24 14 06 00 00 	movl   $0x6,0x14(%esp)
403a6e:	00
403a6f:	89 44 24 08          	mov    %eax,0x8(%esp)
403a73:	ff 15 4c d7 48 00    	call   *0x48d74c
403a79:	68 31 a6 43 00       	push   $0x43a631
403a7e:	a3 ec 10 4c 00       	mov    %eax,0x4c10ec
403a83:	e8 7d d9 01 00       	call   0x421405
403a88:	59                   	pop    %ecx
403a89:	56                   	push   %esi
403a8a:	e8 de d9 01 00       	call   0x42146d
403a8f:	59                   	pop    %ecx
403a90:	8b 0d 90 21 4c 00    	mov    0x4c2190,%ecx
403a96:	e8 40 00 00 00       	call   0x403adb
403a9b:	ff 75 10             	push   0x10(%ebp)
403a9e:	e8 76 02 00 00       	call   0x403d19
403aa3:	a1 90 21 4c 00       	mov    0x4c2190,%eax
403aa8:	6a 02                	push   $0x2
403aaa:	ff 70 04             	push   0x4(%eax)
403aad:	57                   	push   %edi
403aae:	68 01 20 00 00       	push   $0x2001
403ab3:	ff 15 28 d7 48 00    	call   *0x48d728
403ab9:	8b 35 bc 10 4c 00    	mov    0x4c10bc,%esi
403abf:	8d 4c 24 18          	lea    0x18(%esp),%ecx
403ac3:	e8 58 f1 00 00       	call   0x412c20
403ac8:	8d 4c 24 08          	lea    0x8(%esp),%ecx
403acc:	e8 4f f1 00 00       	call   0x412c20
403ad1:	8b c6                	mov    %esi,%eax
403ad3:	5f                   	pop    %edi
403ad4:	5e                   	pop    %esi
403ad5:	8b e5                	mov    %ebp,%esp
403ad7:	5d                   	pop    %ebp
403ad8:	c2 10 00             	ret    $0x10
403adb:	55                   	push   %ebp
403adc:	8b ec                	mov    %esp,%ebp
403ade:	51                   	push   %ecx
403adf:	53                   	push   %ebx
403ae0:	57                   	push   %edi
403ae1:	33 db                	xor    %ebx,%ebx
403ae3:	53                   	push   %ebx
403ae4:	8d 45 fc             	lea    -0x4(%ebp),%eax
403ae7:	50                   	push   %eax
403ae8:	53                   	push   %ebx
403ae9:	68 00 20 00 00       	push   $0x2000
403aee:	8b f9                	mov    %ecx,%edi
403af0:	89 5d fc             	mov    %ebx,-0x4(%ebp)
403af3:	ff 15 28 d7 48 00    	call   *0x48d728
403af9:	8b 45 fc             	mov    -0x4(%ebp),%eax
403afc:	6a 02                	push   $0x2
403afe:	53                   	push   %ebx
403aff:	53                   	push   %ebx
403b00:	68 01 20 00 00       	push   $0x2001
403b05:	89 47 04             	mov    %eax,0x4(%edi)
403b08:	ff 15 28 d7 48 00    	call   *0x48d728
403b0e:	5f                   	pop    %edi
403b0f:	5b                   	pop    %ebx
403b10:	c9                   	leave
403b11:	c3                   	ret
403b12:	55                   	push   %ebp
403b13:	8b ec                	mov    %esp,%ebp
403b15:	83 ec 0c             	sub    $0xc,%esp
403b18:	56                   	push   %esi
403b19:	8b f1                	mov    %ecx,%esi
403b1b:	8b 46 0c             	mov    0xc(%esi),%eax
403b1e:	83 f8 06             	cmp    $0x6,%eax
403b21:	7d 03                	jge    0x403b26
403b23:	5e                   	pop    %esi
403b24:	c9                   	leave
403b25:	c3                   	ret
403b26:	33 c9                	xor    %ecx,%ecx
403b28:	6a 04                	push   $0x4
403b2a:	5a                   	pop    %edx
403b2b:	f7 e2                	mul    %edx
403b2d:	0f 90 c1             	seto   %cl
403b30:	f7 d9                	neg    %ecx
403b32:	0b c8                	or     %eax,%ecx
403b34:	51                   	push   %ecx
403b35:	e8 b0 b9 01 00       	call   0x41f4ea
403b3a:	8b 16                	mov    (%esi),%edx
403b3c:	59                   	pop    %ecx
403b3d:	33 c9                	xor    %ecx,%ecx
403b3f:	89 46 08             	mov    %eax,0x8(%esi)
403b42:	39 4e 0c             	cmp    %ecx,0xc(%esi)
403b45:	7e 0f                	jle    0x403b56
403b47:	8b 46 08             	mov    0x8(%esi),%eax
403b4a:	89 14 88             	mov    %edx,(%eax,%ecx,4)
403b4d:	8b 52 24             	mov    0x24(%edx),%edx
403b50:	41                   	inc    %ecx
403b51:	3b 4e 0c             	cmp    0xc(%esi),%ecx
403b54:	7c f1                	jl     0x403b47
403b56:	53                   	push   %ebx
403b57:	57                   	push   %edi
403b58:	8b 46 0c             	mov    0xc(%esi),%eax
403b5b:	32 db                	xor    %bl,%bl
403b5d:	33 ff                	xor    %edi,%edi
403b5f:	48                   	dec    %eax
403b60:	85 c0                	test   %eax,%eax
403b62:	7e 2a                	jle    0x403b8e
403b64:	8b 46 08             	mov    0x8(%esi),%eax
403b67:	8b 0c b8             	mov    (%eax,%edi,4),%ecx
403b6a:	8b 44 b8 04          	mov    0x4(%eax,%edi,4),%eax
403b6e:	89 4d f4             	mov    %ecx,-0xc(%ebp)
403b71:	8b d1                	mov    %ecx,%edx
403b73:	8b c8                	mov    %eax,%ecx
403b75:	89 45 f8             	mov    %eax,-0x8(%ebp)
403b78:	e8 2c 00 00 00       	call   0x403ba9
403b7d:	84 c0                	test   %al,%al
403b7f:	75 11                	jne    0x403b92
403b81:	8b 46 0c             	mov    0xc(%esi),%eax
403b84:	47                   	inc    %edi
403b85:	48                   	dec    %eax
403b86:	3b f8                	cmp    %eax,%edi
403b88:	7c da                	jl     0x403b64
403b8a:	84 db                	test   %bl,%bl
403b8c:	75 ca                	jne    0x403b58
403b8e:	5f                   	pop    %edi
403b8f:	5b                   	pop    %ebx
403b90:	eb 91                	jmp    0x403b23
403b92:	8b 46 08             	mov    0x8(%esi),%eax
403b95:	8b 4d f8             	mov    -0x8(%ebp),%ecx
403b98:	89 0c b8             	mov    %ecx,(%eax,%edi,4)
403b9b:	8b 46 08             	mov    0x8(%esi),%eax
403b9e:	8b 4d f4             	mov    -0xc(%ebp),%ecx
403ba1:	b3 01                	mov    $0x1,%bl
403ba3:	89 4c b8 04          	mov    %ecx,0x4(%eax,%edi,4)
403ba7:	eb d8                	jmp    0x403b81
403ba9:	56                   	push   %esi
403baa:	8b 71 04             	mov    0x4(%ecx),%esi
403bad:	57                   	push   %edi
403bae:	8b fa                	mov    %edx,%edi
403bb0:	3b 77 04             	cmp    0x4(%edi),%esi
403bb3:	76 03                	jbe    0x403bb8
403bb5:	8b 77 04             	mov    0x4(%edi),%esi
403bb8:	8b 17                	mov    (%edi),%edx
403bba:	8b 09                	mov    (%ecx),%ecx
403bbc:	56                   	push   %esi
403bbd:	e8 db 82 00 00       	call   0x40be9d
403bc2:	59                   	pop    %ecx
403bc3:	85 c0                	test   %eax,%eax
403bc5:	78 07                	js     0x403bce
403bc7:	74 09                	je     0x403bd2
403bc9:	32 c0                	xor    %al,%al
403bcb:	5f                   	pop    %edi
403bcc:	5e                   	pop    %esi
403bcd:	c3                   	ret
403bce:	b0 01                	mov    $0x1,%al
403bd0:	eb f9                	jmp    0x403bcb
403bd2:	3b 77 04             	cmp    0x4(%edi),%esi
403bd5:	72 f7                	jb     0x403bce
403bd7:	eb f0                	jmp    0x403bc9
403bd9:	83 0d 18 17 4c 00 ff 	orl    $0xffffffff,0x4c1718
403be0:	83 0d 1c 17 4c 00 ff 	orl    $0xffffffff,0x4c171c
403be7:	53                   	push   %ebx
403be8:	33 db                	xor    %ebx,%ebx
403bea:	68 44 e4 49 00       	push   $0x49e444
403bef:	b9 24 17 4c 00       	mov    $0x4c1724,%ecx
403bf4:	89 1d 08 17 4c 00    	mov    %ebx,0x4c1708
403bfa:	c7 05 0c 17 4c 00 01 	movl   $0x1010101,0x4c170c
403c01:	01 01 01
403c04:	66 89 1d 10 17 4c 00 	mov    %bx,0x4c1710
403c0b:	c6 05 12 17 4c 00 01 	movb   $0x1,0x4c1712
403c12:	c7 05 14 17 4c 00 09 	movl   $0x9,0x4c1714
403c19:	00 00 00
403c1c:	89 1d 20 17 4c 00    	mov    %ebx,0x4c1720
403c22:	e8 f2 91 00 00       	call   0x40ce19
403c27:	68 50 e4 49 00       	push   $0x49e450
403c2c:	b9 34 17 4c 00       	mov    $0x4c1734,%ecx
403c31:	e8 e3 91 00 00       	call   0x40ce19
403c36:	b9 44 17 4c 00       	mov    $0x4c1744,%ecx
403c3b:	e8 b7 9b 00 00       	call   0x40d7f7
403c40:	b9 54 17 4c 00       	mov    $0x4c1754,%ecx
403c45:	e8 ad 9b 00 00       	call   0x40d7f7
403c4a:	b9 64 17 4c 00       	mov    $0x4c1764,%ecx
403c4f:	e8 a3 9b 00 00       	call   0x40d7f7
403c54:	a1 24 17 4c 00       	mov    0x4c1724,%eax
403c59:	a3 74 17 4c 00       	mov    %eax,0x4c1774
403c5e:	a1 28 17 4c 00       	mov    0x4c1728,%eax
403c63:	a3 78 17 4c 00       	mov    %eax,0x4c1778
403c68:	a1 2c 17 4c 00       	mov    0x4c172c,%eax
403c6d:	a3 7c 17 4c 00       	mov    %eax,0x4c177c
403c72:	a1 30 17 4c 00       	mov    0x4c1730,%eax
403c77:	a3 80 17 4c 00       	mov    %eax,0x4c1780
403c7c:	ff 00                	incl   (%eax)
403c7e:	a1 34 17 4c 00       	mov    0x4c1734,%eax
403c83:	a3 84 17 4c 00       	mov    %eax,0x4c1784
403c88:	a1 38 17 4c 00       	mov    0x4c1738,%eax
403c8d:	a3 88 17 4c 00       	mov    %eax,0x4c1788
403c92:	a1 3c 17 4c 00       	mov    0x4c173c,%eax
403c97:	68 f7 d7 40 00       	push   $0x40d7f7
403c9c:	a3 8c 17 4c 00       	mov    %eax,0x4c178c
403ca1:	a1 40 17 4c 00       	mov    0x4c1740,%eax
403ca6:	6a 0f                	push   $0xf
403ca8:	6a 10                	push   $0x10
403caa:	a3 90 17 4c 00       	mov    %eax,0x4c1790
403caf:	ff 00                	incl   (%eax)
403cb1:	5a                   	pop    %edx
403cb2:	b9 ac 17 4c 00       	mov    $0x4c17ac,%ecx
403cb7:	89 1d 94 17 4c 00    	mov    %ebx,0x4c1794
403cbd:	89 1d 98 17 4c 00    	mov    %ebx,0x4c1798
403cc3:	89 1d 9c 17 4c 00    	mov    %ebx,0x4c179c
403cc9:	88 1d a8 17 4c 00    	mov    %bl,0x4c17a8
403ccf:	e8 98 0c 00 00       	call   0x40496c
403cd4:	83 0d dc 20 4c 00 ff 	orl    $0xffffffff,0x4c20dc
403cdb:	66 89 1d 9c 18 4c 00 	mov    %bx,0x4c189c
403ce2:	89 1d a0 18 4c 00    	mov    %ebx,0x4c18a0
403ce8:	89 1d a4 18 4c 00    	mov    %ebx,0x4c18a4
403cee:	88 1d a8 18 4c 00    	mov    %bl,0x4c18a8
403cf4:	89 1d ac 18 4c 00    	mov    %ebx,0x4c18ac
403cfa:	89 1d b0 18 4c 00    	mov    %ebx,0x4c18b0
403d00:	88 1d b4 18 4c 00    	mov    %bl,0x4c18b4
403d06:	89 1d b8 18 4c 00    	mov    %ebx,0x4c18b8
403d0c:	89 1d d8 20 4c 00    	mov    %ebx,0x4c20d8
403d12:	b8 08 17 4c 00       	mov    $0x4c1708,%eax
403d17:	5b                   	pop    %ebx
403d18:	c3                   	ret
403d19:	55                   	push   %ebp
403d1a:	8b ec                	mov    %esp,%ebp
403d1c:	b8 30 00 02 00       	mov    $0x20030,%eax
403d21:	e8 7a bb 02 00       	call   0x42f8a0
403d26:	53                   	push   %ebx
403d27:	56                   	push   %esi
403d28:	57                   	push   %edi
403d29:	8d 4d d4             	lea    -0x2c(%ebp),%ecx
403d2c:	e8 c6 9a 00 00       	call   0x40d7f7
403d31:	8d 85 d4 ff fe ff    	lea    -0x1002c(%ebp),%eax
403d37:	50                   	push   %eax
403d38:	33 db                	xor    %ebx,%ebx
403d3a:	68 ff 7f 00 00       	push   $0x7fff
403d3f:	88 5d fa             	mov    %bl,-0x6(%ebp)
403d42:	88 5d fb             	mov    %bl,-0x5(%ebp)
403d45:	ff 15 20 d3 48 00    	call   *0x48d320
403d4b:	8d 45 f9             	lea    -0x7(%ebp),%eax
403d4e:	50                   	push   %eax
403d4f:	ff 75 08             	push   0x8(%ebp)