4037ea:	75 05                	jne    0x4037f1
4037ec:	66 89 06             	mov    %ax,(%esi)
4037ef:	eb df                	jmp    0x4037d0
4037f1:	8b d6                	mov    %esi,%edx
4037f3:	2b d0                	sub    %eax,%edx
4037f5:	0f b7 08             	movzwl (%eax),%ecx
4037f8:	66 89 0c 02          	mov    %cx,(%edx,%eax,1)
4037fc:	83 c0 02             	add    $0x2,%eax
4037ff:	66 85 c9             	test   %cx,%cx
403802:	74 03                	je     0x403807
403804:	4f                   	dec    %edi
403805:	75 ee                	jne    0x4037f5
403807:	33 c0                	xor    %eax,%eax
403809:	85 ff                	test   %edi,%edi
40380b:	75 d4                	jne    0x4037e1
40380d:	66 89 06             	mov    %ax,(%esi)
403810:	e8 12 09 00 00       	call   0x404127
403815:	6a 22                	push   $0x22
403817:	59                   	pop    %ecx
403818:	89 08                	mov    %ecx,(%eax)
40381a:	8b f1                	mov    %ecx,%esi
40381c:	eb bc                	jmp    0x4037da
40381e:	8b ff                	mov    %edi,%edi
403820:	55                   	push   %ebp
403821:	8b ec                	mov    %esp,%ebp
403823:	56                   	push   %esi
403824:	8b 75 08             	mov    0x8(%ebp),%esi
403827:	57                   	push   %edi
403828:	83 cf ff             	or     $0xffffffff,%edi
40382b:	85 f6                	test   %esi,%esi
40382d:	75 14                	jne    0x403843
40382f:	e8 f3 08 00 00       	call   0x404127
403834:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40383a:	e8 48 f4 ff ff       	call   0x402c87
40383f:	0b c7                	or     %edi,%eax
403841:	eb 44                	jmp    0x403887
403843:	f6 46 0c 83          	testb  $0x83,0xc(%esi)
403847:	74 38                	je     0x403881
403849:	56                   	push   %esi
40384a:	e8 3d 32 00 00       	call   0x406a8c
40384f:	56                   	push   %esi
403850:	8b f8                	mov    %eax,%edi
403852:	e8 95 5f 00 00       	call   0x4097ec
403857:	56                   	push   %esi
403858:	e8 53 f2 ff ff       	call   0x402ab0
40385d:	50                   	push   %eax
40385e:	e8 38 01 00 00       	call   0x40399b
403863:	83 c4 10             	add    $0x10,%esp
403866:	85 c0                	test   %eax,%eax
403868:	79 05                	jns    0x40386f
40386a:	83 cf ff             	or     $0xffffffff,%edi
40386d:	eb 12                	jmp    0x403881
40386f:	8b 46 1c             	mov    0x1c(%esi),%eax
403872:	85 c0                	test   %eax,%eax
403874:	74 0b                	je     0x403881
403876:	50                   	push   %eax
403877:	e8 ef e6 ff ff       	call   0x401f6b
40387c:	83 66 1c 00          	andl   $0x0,0x1c(%esi)
403880:	59                   	pop    %ecx
403881:	83 66 0c 00          	andl   $0x0,0xc(%esi)
403885:	8b c7                	mov    %edi,%eax
403887:	5f                   	pop    %edi
403888:	5e                   	pop    %esi
403889:	5d                   	pop    %ebp
40388a:	c3                   	ret
40388b:	6a 0c                	push   $0xc
40388d:	68 78 11 41 00       	push   $0x411178
403892:	e8 d9 08 00 00       	call   0x404170
403897:	83 4d e4 ff          	orl    $0xffffffff,-0x1c(%ebp)
40389b:	33 c0                	xor    %eax,%eax
40389d:	8b 75 08             	mov    0x8(%ebp),%esi
4038a0:	85 f6                	test   %esi,%esi
4038a2:	0f 95 c0             	setne  %al
4038a5:	85 c0                	test   %eax,%eax
4038a7:	75 15                	jne    0x4038be
4038a9:	e8 79 08 00 00       	call   0x404127
4038ae:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
4038b4:	e8 ce f3 ff ff       	call   0x402c87
4038b9:	83 c8 ff             	or     $0xffffffff,%eax
4038bc:	eb 0d                	jmp    0x4038cb
4038be:	f6 46 0c 40          	testb  $0x40,0xc(%esi)
4038c2:	74 0d                	je     0x4038d1
4038c4:	83 66 0c 00          	andl   $0x0,0xc(%esi)
4038c8:	8b 45 e4             	mov    -0x1c(%ebp),%eax
4038cb:	e8 e5 08 00 00       	call   0x4041b5
4038d0:	c3                   	ret
4038d1:	56                   	push   %esi
4038d2:	e8 83 ea ff ff       	call   0x40235a
4038d7:	59                   	pop    %ecx
4038d8:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
4038dc:	56                   	push   %esi
4038dd:	e8 3c ff ff ff       	call   0x40381e
4038e2:	59                   	pop    %ecx
4038e3:	89 45 e4             	mov    %eax,-0x1c(%ebp)
4038e6:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
4038ed:	e8 05 00 00 00       	call   0x4038f7
4038f2:	eb d4                	jmp    0x4038c8
4038f4:	8b 75 08             	mov    0x8(%ebp),%esi
4038f7:	56                   	push   %esi
4038f8:	e8 d0 ea ff ff       	call   0x4023cd
4038fd:	59                   	pop    %ecx
4038fe:	c3                   	ret
4038ff:	8b ff                	mov    %edi,%edi
403901:	55                   	push   %ebp
403902:	8b ec                	mov    %esp,%ebp
403904:	56                   	push   %esi
403905:	8b 75 08             	mov    0x8(%ebp),%esi
403908:	57                   	push   %edi
403909:	56                   	push   %esi
40390a:	e8 66 f7 ff ff       	call   0x403075
40390f:	59                   	pop    %ecx
403910:	83 f8 ff             	cmp    $0xffffffff,%eax
403913:	74 50                	je     0x403965
403915:	a1 20 46 41 00       	mov    0x414620,%eax
40391a:	83 fe 01             	cmp    $0x1,%esi
40391d:	75 09                	jne    0x403928
40391f:	f6 80 84 00 00 00 01 	testb  $0x1,0x84(%eax)
403926:	75 0b                	jne    0x403933
403928:	83 fe 02             	cmp    $0x2,%esi
40392b:	75 1c                	jne    0x403949
40392d:	f6 40 44 01          	testb  $0x1,0x44(%eax)
403931:	74 16                	je     0x403949
403933:	6a 02                	push   $0x2
403935:	e8 3b f7 ff ff       	call   0x403075
40393a:	6a 01                	push   $0x1
40393c:	8b f8                	mov    %eax,%edi
40393e:	e8 32 f7 ff ff       	call   0x403075
403943:	59                   	pop    %ecx
403944:	59                   	pop    %ecx
403945:	3b c7                	cmp    %edi,%eax
403947:	74 1c                	je     0x403965
403949:	56                   	push   %esi
40394a:	e8 26 f7 ff ff       	call   0x403075
40394f:	59                   	pop    %ecx
403950:	50                   	push   %eax
403951:	ff 15 58 f0 40 00    	call   *0x40f058
403957:	85 c0                	test   %eax,%eax
403959:	75 0a                	jne    0x403965
40395b:	ff 15 44 f0 40 00    	call   *0x40f044
403961:	8b f8                	mov    %eax,%edi
403963:	eb 02                	jmp    0x403967
403965:	33 ff                	xor    %edi,%edi
403967:	56                   	push   %esi
403968:	e8 82 f6 ff ff       	call   0x402fef
40396d:	8b c6                	mov    %esi,%eax
40396f:	c1 f8 05             	sar    $0x5,%eax
403972:	8b 04 85 20 46 41 00 	mov    0x414620(,%eax,4),%eax
403979:	83 e6 1f             	and    $0x1f,%esi
40397c:	c1 e6 06             	shl    $0x6,%esi
40397f:	59                   	pop    %ecx
403980:	c6 44 30 04 00       	movb   $0x0,0x4(%eax,%esi,1)
403985:	85 ff                	test   %edi,%edi
403987:	74 0c                	je     0x403995
403989:	57                   	push   %edi
40398a:	e8 be 07 00 00       	call   0x40414d
40398f:	59                   	pop    %ecx
403990:	83 c8 ff             	or     $0xffffffff,%eax
403993:	eb 02                	jmp    0x403997
403995:	33 c0                	xor    %eax,%eax
403997:	5f                   	pop    %edi
403998:	5e                   	pop    %esi
403999:	5d                   	pop    %ebp
40399a:	c3                   	ret
40399b:	6a 10                	push   $0x10
40399d:	68 98 11 41 00       	push   $0x411198
4039a2:	e8 c9 07 00 00       	call   0x404170
4039a7:	8b 5d 08             	mov    0x8(%ebp),%ebx
4039aa:	83 fb fe             	cmp    $0xfffffffe,%ebx
4039ad:	75 1b                	jne    0x4039ca
4039af:	e8 86 07 00 00       	call   0x40413a
4039b4:	83 20 00             	andl   $0x0,(%eax)
4039b7:	e8 6b 07 00 00       	call   0x404127
4039bc:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
4039c2:	83 c8 ff             	or     $0xffffffff,%eax
4039c5:	e9 84 00 00 00       	jmp    0x403a4e
4039ca:	85 db                	test   %ebx,%ebx
4039cc:	78 08                	js     0x4039d6
4039ce:	3b 1d 00 46 41 00    	cmp    0x414600,%ebx
4039d4:	72 1a                	jb     0x4039f0
4039d6:	e8 5f 07 00 00       	call   0x40413a
4039db:	83 20 00             	andl   $0x0,(%eax)
4039de:	e8 44 07 00 00       	call   0x404127
4039e3:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
4039e9:	e8 99 f2 ff ff       	call   0x402c87
4039ee:	eb d2                	jmp    0x4039c2
4039f0:	8b c3                	mov    %ebx,%eax
4039f2:	c1 f8 05             	sar    $0x5,%eax
4039f5:	8d 3c 85 20 46 41 00 	lea    0x414620(,%eax,4),%edi
4039fc:	8b f3                	mov    %ebx,%esi
4039fe:	83 e6 1f             	and    $0x1f,%esi
403a01:	c1 e6 06             	shl    $0x6,%esi
403a04:	8b 07                	mov    (%edi),%eax
403a06:	0f be 44 30 04       	movsbl 0x4(%eax,%esi,1),%eax
403a0b:	83 e0 01             	and    $0x1,%eax
403a0e:	74 c6                	je     0x4039d6
403a10:	53                   	push   %ebx
403a11:	e8 c8 f6 ff ff       	call   0x4030de
403a16:	59                   	pop    %ecx
403a17:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
403a1b:	8b 07                	mov    (%edi),%eax
403a1d:	f6 44 30 04 01       	testb  $0x1,0x4(%eax,%esi,1)
403a22:	74 0c                	je     0x403a30
403a24:	53                   	push   %ebx
403a25:	e8 d5 fe ff ff       	call   0x4038ff
403a2a:	59                   	pop    %ecx
403a2b:	89 45 e4             	mov    %eax,-0x1c(%ebp)
403a2e:	eb 0f                	jmp    0x403a3f
403a30:	e8 f2 06 00 00       	call   0x404127
403a35:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
403a3b:	83 4d e4 ff          	orl    $0xffffffff,-0x1c(%ebp)
403a3f:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
403a46:	e8 0c 00 00 00       	call   0x403a57
403a4b:	8b 45 e4             	mov    -0x1c(%ebp),%eax
403a4e:	e8 62 07 00 00       	call   0x4041b5
403a53:	c3                   	ret
403a54:	8b 5d 08             	mov    0x8(%ebp),%ebx
403a57:	53                   	push   %ebx
403a58:	e8 20 f7 ff ff       	call   0x40317d
403a5d:	59                   	pop    %ecx
403a5e:	c3                   	ret
403a5f:	8b ff                	mov    %edi,%edi
403a61:	55                   	push   %ebp
403a62:	8b ec                	mov    %esp,%ebp
403a64:	83 3d f0 2e 41 00 02 	cmpl   $0x2,0x412ef0
403a6b:	74 05                	je     0x403a72
403a6d:	e8 98 2b 00 00       	call   0x40660a
403a72:	ff 75 08             	push   0x8(%ebp)
403a75:	e8 e1 29 00 00       	call   0x40645b
403a7a:	68 ff 00 00 00       	push   $0xff
403a7f:	e8 f1 26 00 00       	call   0x406175
403a84:	59                   	pop    %ecx
403a85:	59                   	pop    %ecx
403a86:	5d                   	pop    %ebp
403a87:	c3                   	ret
403a88:	6a 14                	push   $0x14
403a8a:	68 b8 11 41 00       	push   $0x4111b8
403a8f:	e8 dc 06 00 00       	call   0x404170
403a94:	33 f6                	xor    %esi,%esi
403a96:	39 35 40 47 41 00    	cmp    %esi,0x414740
403a9c:	75 0b                	jne    0x403aa9
403a9e:	56                   	push   %esi
403a9f:	56                   	push   %esi
403aa0:	6a 01                	push   $0x1
403aa2:	56                   	push   %esi
403aa3:	ff 15 a4 f0 40 00    	call   *0x40f0a4
403aa9:	b8 4d 5a 00 00       	mov    $0x5a4d,%eax
403aae:	66 39 05 00 00 40 00 	cmp    %ax,0x400000
403ab5:	74 05                	je     0x403abc
403ab7:	89 75 e4             	mov    %esi,-0x1c(%ebp)
403aba:	eb 36                	jmp    0x403af2
403abc:	a1 3c 00 40 00       	mov    0x40003c,%eax
403ac1:	81 b8 00 00 40 00 50 	cmpl   $0x4550,0x400000(%eax)
403ac8:	45 00 00
403acb:	75 ea                	jne    0x403ab7
403acd:	b9 0b 01 00 00       	mov    $0x10b,%ecx
403ad2:	66 39 88 18 00 40 00 	cmp    %cx,0x400018(%eax)
403ad9:	75 dc                	jne    0x403ab7
403adb:	83 b8 74 00 40 00 0e 	cmpl   $0xe,0x400074(%eax)
403ae2:	76 d3                	jbe    0x403ab7
403ae4:	33 c9                	xor    %ecx,%ecx
403ae6:	39 b0 e8 00 40 00    	cmp    %esi,0x4000e8(%eax)
403aec:	0f 95 c1             	setne  %cl
403aef:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
403af2:	e8 82 16 00 00       	call   0x405179
403af7:	85 c0                	test   %eax,%eax
403af9:	75 08                	jne    0x403b03
403afb:	6a 1c                	push   $0x1c
403afd:	e8 5d ff ff ff       	call   0x403a5f
403b02:	59                   	pop    %ecx
403b03:	e8 27 24 00 00       	call   0x405f2f
403b08:	85 c0                	test   %eax,%eax
403b0a:	75 08                	jne    0x403b14
403b0c:	6a 10                	push   $0x10
403b0e:	e8 4c ff ff ff       	call   0x403a5f
403b13:	59                   	pop    %ecx
403b14:	e8 66 62 00 00       	call   0x409d7f
403b19:	89 75 fc             	mov    %esi,-0x4(%ebp)
403b1c:	e8 59 2b 00 00       	call   0x40667a
403b21:	85 c0                	test   %eax,%eax
403b23:	79 08                	jns    0x403b2d
403b25:	6a 1b                	push   $0x1b
403b27:	e8 eb 28 00 00       	call   0x406417
403b2c:	59                   	pop    %ecx
403b2d:	ff 15 a0 f0 40 00    	call   *0x40f0a0
403b33:	a3 3c 47 41 00       	mov    %eax,0x41473c
403b38:	e8 ab 61 00 00       	call   0x409ce8
403b3d:	a3 e8 2e 41 00       	mov    %eax,0x412ee8
403b42:	e8 e6 60 00 00       	call   0x409c2d
403b47:	85 c0                	test   %eax,%eax
403b49:	79 08                	jns    0x403b53
403b4b:	6a 08                	push   $0x8
403b4d:	e8 c5 28 00 00       	call   0x406417
403b52:	59                   	pop    %ecx
403b53:	e8 5f 5e 00 00       	call   0x4099b7
403b58:	85 c0                	test   %eax,%eax
403b5a:	79 08                	jns    0x403b64
403b5c:	6a 09                	push   $0x9
403b5e:	e8 b4 28 00 00       	call   0x406417
403b63:	59                   	pop    %ecx
403b64:	6a 01                	push   $0x1
403b66:	e8 8b 26 00 00       	call   0x4061f6
403b6b:	59                   	pop    %ecx
403b6c:	3b c6                	cmp    %esi,%eax
403b6e:	74 07                	je     0x403b77
403b70:	50                   	push   %eax
403b71:	e8 a1 28 00 00       	call   0x406417
403b76:	59                   	pop    %ecx
403b77:	a1 68 32 41 00       	mov    0x413268,%eax
403b7c:	a3 6c 32 41 00       	mov    %eax,0x41326c
403b81:	50                   	push   %eax
403b82:	ff 35 60 32 41 00    	push   0x413260
403b88:	ff 35 5c 32 41 00    	push   0x41325c
403b8e:	e8 0c e2 ff ff       	call   0x401d9f
403b93:	83 c4 0c             	add    $0xc,%esp
403b96:	89 45 e0             	mov    %eax,-0x20(%ebp)
403b99:	39 75 e4             	cmp    %esi,-0x1c(%ebp)
403b9c:	75 06                	jne    0x403ba4
403b9e:	50                   	push   %eax
403b9f:	e8 29 28 00 00       	call   0x4063cd
403ba4:	e8 50 28 00 00       	call   0x4063f9
403ba9:	eb 2e                	jmp    0x403bd9
403bab:	8b 45 ec             	mov    -0x14(%ebp),%eax
403bae:	8b 08                	mov    (%eax),%ecx
403bb0:	8b 09                	mov    (%ecx),%ecx
403bb2:	89 4d dc             	mov    %ecx,-0x24(%ebp)
403bb5:	50                   	push   %eax
403bb6:	51                   	push   %ecx
403bb7:	e8 b1 5c 00 00       	call   0x40986d
403bbc:	59                   	pop    %ecx
403bbd:	59                   	pop    %ecx
403bbe:	c3                   	ret
403bbf:	8b 65 e8             	mov    -0x18(%ebp),%esp
403bc2:	8b 45 dc             	mov    -0x24(%ebp),%eax
403bc5:	89 45 e0             	mov    %eax,-0x20(%ebp)
403bc8:	83 7d e4 00          	cmpl   $0x0,-0x1c(%ebp)
403bcc:	75 06                	jne    0x403bd4
403bce:	50                   	push   %eax
403bcf:	e8 0f 28 00 00       	call   0x4063e3
403bd4:	e8 2f 28 00 00       	call   0x406408
403bd9:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
403be0:	8b 45 e0             	mov    -0x20(%ebp),%eax
403be3:	e8 cd 05 00 00       	call   0x4041b5
403be8:	c3                   	ret
403be9:	e8 dd 61 00 00       	call   0x409dcb
403bee:	e9 95 fe ff ff       	jmp    0x403a88
403bf3:	8b ff                	mov    %edi,%edi
403bf5:	55                   	push   %ebp
403bf6:	8b ec                	mov    %esp,%ebp
403bf8:	81 ec 28 03 00 00    	sub    $0x328,%esp
403bfe:	a3 00 30 41 00       	mov    %eax,0x413000