4037a5:	83 c4 10             	add    $0x10,%esp
4037a8:	3b fb                	cmp    %ebx,%edi
4037aa:	75 03                	jne    0x4037af
4037ac:	8d 47 ff             	lea    -0x1(%edi),%eax
4037af:	c6 04 28 00          	movb   $0x0,(%eax,%ebp,1)
4037b3:	56                   	push   %esi
4037b4:	8b df                	mov    %edi,%ebx
4037b6:	e8 f5 da 02 00       	call   0x4312b0
4037bb:	83 c4 04             	add    $0x4,%esp
4037be:	85 c0                	test   %eax,%eax
4037c0:	75 4f                	jne    0x403811
4037c2:	c7 44 24 10 ea 00 00 	movl   $0xea,0x10(%esp)
4037c9:	00
4037ca:	8d 9b 00 00 00 00    	lea    0x0(%ebx),%ebx
4037d0:	56                   	push   %esi
4037d1:	68 00 04 00 00       	push   $0x400
4037d6:	8d 4c 24 1c          	lea    0x1c(%esp),%ecx
4037da:	6a 01                	push   $0x1
4037dc:	51                   	push   %ecx
4037dd:	e8 85 dd 02 00       	call   0x431567
4037e2:	8b f8                	mov    %eax,%edi
4037e4:	83 c4 10             	add    $0x10,%esp
4037e7:	85 ff                	test   %edi,%edi
4037e9:	75 0d                	jne    0x4037f8
4037eb:	56                   	push   %esi
4037ec:	e8 bf da 02 00       	call   0x4312b0
4037f1:	83 c4 04             	add    $0x4,%esp
4037f4:	85 c0                	test   %eax,%eax
4037f6:	74 11                	je     0x403809
4037f8:	56                   	push   %esi
4037f9:	03 df                	add    %edi,%ebx
4037fb:	e8 b0 da 02 00       	call   0x4312b0
403800:	83 c4 04             	add    $0x4,%esp
403803:	85 c0                	test   %eax,%eax
403805:	74 c9                	je     0x4037d0
403807:	eb 08                	jmp    0x403811
403809:	c7 44 24 10 1e 00 00 	movl   $0x1e,0x10(%esp)
403810:	00
403811:	8b 84 24 24 04 00 00 	mov    0x424(%esp),%eax
403818:	85 c0                	test   %eax,%eax
40381a:	74 03                	je     0x40381f
40381c:	43                   	inc    %ebx
40381d:	89 18                	mov    %ebx,(%eax)
40381f:	56                   	push   %esi
403820:	e8 fb d8 02 00       	call   0x431120
403825:	8b 44 24 14          	mov    0x14(%esp),%eax
403829:	83 c4 04             	add    $0x4,%esp
40382c:	5d                   	pop    %ebp
40382d:	5b                   	pop    %ebx
40382e:	5f                   	pop    %edi
40382f:	5e                   	pop    %esi
403830:	81 c4 04 04 00 00    	add    $0x404,%esp
403836:	c3                   	ret
403837:	cc                   	int3
403838:	cc                   	int3
403839:	cc                   	int3
40383a:	cc                   	int3
40383b:	cc                   	int3
40383c:	cc                   	int3
40383d:	cc                   	int3
40383e:	cc                   	int3
40383f:	cc                   	int3
403840:	81 ec 60 06 00 00    	sub    $0x660,%esp
403846:	56                   	push   %esi
403847:	8b b4 24 68 06 00 00 	mov    0x668(%esp),%esi
40384e:	85 f6                	test   %esi,%esi
403850:	75 0b                	jne    0x40385d
403852:	8d 46 57             	lea    0x57(%esi),%eax
403855:	5e                   	pop    %esi
403856:	81 c4 60 06 00 00    	add    $0x660,%esp
40385c:	c3                   	ret
40385d:	57                   	push   %edi
40385e:	56                   	push   %esi
40385f:	68 24 c2 45 00       	push   $0x45c224
403864:	8d 84 24 68 04 00 00 	lea    0x468(%esp),%eax
40386b:	68 04 01 00 00       	push   $0x104
403870:	50                   	push   %eax
403871:	e8 e9 cd 02 00       	call   0x43065f
403876:	83 c4 10             	add    $0x10,%esp
403879:	8d 54 24 08          	lea    0x8(%esp),%edx
40387d:	52                   	push   %edx
40387e:	8d 84 24 64 04 00 00 	lea    0x464(%esp),%eax
403885:	33 c9                	xor    %ecx,%ecx
403887:	50                   	push   %eax
403888:	66 89 8c 24 6e 06 00 	mov    %cx,0x66e(%esp)
40388f:	00
403890:	ff 15 50 34 47 00    	call   *0x473450
403896:	8b f8                	mov    %eax,%edi
403898:	83 ff ff             	cmp    $0xffffffff,%edi
40389b:	0f 84 1b 01 00 00    	je     0x4039bc
4038a1:	55                   	push   %ebp
4038a2:	8b 2d 74 34 47 00    	mov    0x473474,%ebp
4038a8:	eb 06                	jmp    0x4038b0
4038aa:	8d 9b 00 00 00 00    	lea    0x0(%ebx),%ebx
4038b0:	b9 20 c2 45 00       	mov    $0x45c220,%ecx
4038b5:	8d 44 24 38          	lea    0x38(%esp),%eax
4038b9:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
4038c0:	66 8b 10             	mov    (%eax),%dx
4038c3:	66 3b 11             	cmp    (%ecx),%dx
4038c6:	75 1e                	jne    0x4038e6
4038c8:	66 85 d2             	test   %dx,%dx
4038cb:	74 15                	je     0x4038e2
4038cd:	66 8b 50 02          	mov    0x2(%eax),%dx
4038d1:	66 3b 51 02          	cmp    0x2(%ecx),%dx
4038d5:	75 0f                	jne    0x4038e6
4038d7:	83 c0 04             	add    $0x4,%eax
4038da:	83 c1 04             	add    $0x4,%ecx
4038dd:	66 85 d2             	test   %dx,%dx
4038e0:	75 de                	jne    0x4038c0
4038e2:	33 c0                	xor    %eax,%eax
4038e4:	eb 05                	jmp    0x4038eb
4038e6:	1b c0                	sbb    %eax,%eax
4038e8:	83 d8 ff             	sbb    $0xffffffff,%eax
4038eb:	85 c0                	test   %eax,%eax
4038ed:	0f 84 a2 00 00 00    	je     0x403995
4038f3:	b9 18 c2 45 00       	mov    $0x45c218,%ecx
4038f8:	8d 44 24 38          	lea    0x38(%esp),%eax
4038fc:	8d 64 24 00          	lea    0x0(%esp),%esp
403900:	66 8b 10             	mov    (%eax),%dx
403903:	66 3b 11             	cmp    (%ecx),%dx
403906:	75 1e                	jne    0x403926
403908:	66 85 d2             	test   %dx,%dx
40390b:	74 15                	je     0x403922
40390d:	66 8b 50 02          	mov    0x2(%eax),%dx
403911:	66 3b 51 02          	cmp    0x2(%ecx),%dx
403915:	75 0f                	jne    0x403926
403917:	83 c0 04             	add    $0x4,%eax
40391a:	83 c1 04             	add    $0x4,%ecx
40391d:	66 85 d2             	test   %dx,%dx
403920:	75 de                	jne    0x403900
403922:	33 c0                	xor    %eax,%eax
403924:	eb 05                	jmp    0x40392b
403926:	1b c0                	sbb    %eax,%eax
403928:	83 d8 ff             	sbb    $0xffffffff,%eax
40392b:	85 c0                	test   %eax,%eax
40392d:	74 66                	je     0x403995
40392f:	8d 4c 24 38          	lea    0x38(%esp),%ecx
403933:	68 08 c0 45 00       	push   $0x45c008
403938:	51                   	push   %ecx
403939:	e8 25 d4 02 00       	call   0x430d63
40393e:	83 c4 08             	add    $0x8,%esp
403941:	85 c0                	test   %eax,%eax
403943:	75 50                	jne    0x403995
403945:	8d 54 24 38          	lea    0x38(%esp),%edx
403949:	52                   	push   %edx
40394a:	56                   	push   %esi
40394b:	68 0c c2 45 00       	push   $0x45c20c
403950:	8d 84 24 68 02 00 00 	lea    0x268(%esp),%eax
403957:	68 04 01 00 00       	push   $0x104
40395c:	50                   	push   %eax
40395d:	e8 fd cc 02 00       	call   0x43065f
403962:	33 c9                	xor    %ecx,%ecx
403964:	83 c4 14             	add    $0x14,%esp
403967:	f6 44 24 0c 10       	testb  $0x10,0xc(%esp)
40396c:	66 89 8c 24 62 04 00 	mov    %cx,0x462(%esp)
403973:	00
403974:	74 0f                	je     0x403985
403976:	8d 94 24 5c 02 00 00 	lea    0x25c(%esp),%edx
40397d:	52                   	push   %edx
40397e:	e8 bd fe ff ff       	call   0x403840
403983:	eb 0d                	jmp    0x403992
403985:	8d 84 24 5c 02 00 00 	lea    0x25c(%esp),%eax
40398c:	50                   	push   %eax
40398d:	e8 7e f0 ff ff       	call   0x402a10
403992:	83 c4 04             	add    $0x4,%esp
403995:	8d 4c 24 0c          	lea    0xc(%esp),%ecx
403999:	51                   	push   %ecx
40399a:	57                   	push   %edi
40399b:	ff d5                	call   *%ebp
40399d:	85 c0                	test   %eax,%eax
40399f:	0f 85 0b ff ff ff    	jne    0x4038b0
4039a5:	57                   	push   %edi
4039a6:	ff 15 4c 34 47 00    	call   *0x47344c
4039ac:	5d                   	pop    %ebp
4039ad:	85 c0                	test   %eax,%eax
4039af:	74 0b                	je     0x4039bc
4039b1:	56                   	push   %esi
4039b2:	ff 15 70 34 47 00    	call   *0x473470
4039b8:	85 c0                	test   %eax,%eax
4039ba:	75 0f                	jne    0x4039cb
4039bc:	ff 15 24 34 47 00    	call   *0x473424
4039c2:	5f                   	pop    %edi
4039c3:	5e                   	pop    %esi
4039c4:	81 c4 60 06 00 00    	add    $0x660,%esp
4039ca:	c3                   	ret
4039cb:	5f                   	pop    %edi
4039cc:	33 c0                	xor    %eax,%eax
4039ce:	5e                   	pop    %esi
4039cf:	81 c4 60 06 00 00    	add    $0x660,%esp
4039d5:	c3                   	ret
4039d6:	cc                   	int3
4039d7:	cc                   	int3
4039d8:	cc                   	int3
4039d9:	cc                   	int3
4039da:	cc                   	int3
4039db:	cc                   	int3
4039dc:	cc                   	int3
4039dd:	cc                   	int3
4039de:	cc                   	int3
4039df:	cc                   	int3
4039e0:	83 ec 10             	sub    $0x10,%esp
4039e3:	53                   	push   %ebx
4039e4:	8b 5c 24 18          	mov    0x18(%esp),%ebx
4039e8:	55                   	push   %ebp
4039e9:	8b 2d 7c 33 47 00    	mov    0x47337c,%ebp
4039ef:	56                   	push   %esi
4039f0:	57                   	push   %edi
4039f1:	33 f6                	xor    %esi,%esi
4039f3:	8d 44 24 18          	lea    0x18(%esp),%eax
4039f7:	50                   	push   %eax
4039f8:	8d 4c 24 14          	lea    0x14(%esp),%ecx
4039fc:	51                   	push   %ecx
4039fd:	56                   	push   %esi
4039fe:	8d 54 24 20          	lea    0x20(%esp),%edx
403a02:	52                   	push   %edx
403a03:	56                   	push   %esi
403a04:	53                   	push   %ebx
403a05:	56                   	push   %esi
403a06:	89 74 24 30          	mov    %esi,0x30(%esp)
403a0a:	89 74 24 2c          	mov    %esi,0x2c(%esp)
403a0e:	89 74 24 38          	mov    %esi,0x38(%esp)
403a12:	33 ff                	xor    %edi,%edi
403a14:	ff d5                	call   *%ebp
403a16:	85 c0                	test   %eax,%eax
403a18:	75 52                	jne    0x403a6c
403a1a:	ff 15 24 34 47 00    	call   *0x473424
403a20:	83 f8 7a             	cmp    $0x7a,%eax
403a23:	75 47                	jne    0x403a6c
403a25:	8b 44 24 14          	mov    0x14(%esp),%eax
403a29:	8b 3d 78 34 47 00    	mov    0x473478,%edi
403a2f:	50                   	push   %eax
403a30:	6a 40                	push   $0x40
403a32:	ff d7                	call   *%edi
403a34:	8b 4c 24 10          	mov    0x10(%esp),%ecx
403a38:	8d 14 09             	lea    (%ecx,%ecx,1),%edx
403a3b:	52                   	push   %edx
403a3c:	6a 40                	push   $0x40
403a3e:	8b f0                	mov    %eax,%esi
403a40:	ff d7                	call   *%edi
403a42:	8b f8                	mov    %eax,%edi
403a44:	85 f6                	test   %esi,%esi
403a46:	74 24                	je     0x403a6c
403a48:	85 ff                	test   %edi,%edi
403a4a:	74 20                	je     0x403a6c
403a4c:	8d 44 24 18          	lea    0x18(%esp),%eax
403a50:	50                   	push   %eax
403a51:	8d 4c 24 14          	lea    0x14(%esp),%ecx
403a55:	51                   	push   %ecx
403a56:	57                   	push   %edi
403a57:	8d 54 24 20          	lea    0x20(%esp),%edx
403a5b:	52                   	push   %edx
403a5c:	56                   	push   %esi
403a5d:	53                   	push   %ebx
403a5e:	6a 00                	push   $0x0
403a60:	ff d5                	call   *%ebp
403a62:	85 c0                	test   %eax,%eax
403a64:	74 06                	je     0x403a6c
403a66:	8b de                	mov    %esi,%ebx
403a68:	33 f6                	xor    %esi,%esi
403a6a:	eb 04                	jmp    0x403a70
403a6c:	8b 5c 24 1c          	mov    0x1c(%esp),%ebx
403a70:	56                   	push   %esi
403a71:	8b 35 60 34 47 00    	mov    0x473460,%esi
403a77:	ff d6                	call   *%esi
403a79:	57                   	push   %edi
403a7a:	ff d6                	call   *%esi
403a7c:	5f                   	pop    %edi
403a7d:	5e                   	pop    %esi
403a7e:	5d                   	pop    %ebp
403a7f:	8b c3                	mov    %ebx,%eax
403a81:	5b                   	pop    %ebx
403a82:	83 c4 10             	add    $0x10,%esp
403a85:	c3                   	ret
403a86:	cc                   	int3
403a87:	cc                   	int3
403a88:	cc                   	int3
403a89:	cc                   	int3
403a8a:	cc                   	int3
403a8b:	cc                   	int3
403a8c:	cc                   	int3
403a8d:	cc                   	int3
403a8e:	cc                   	int3
403a8f:	cc                   	int3
403a90:	83 ec 10             	sub    $0x10,%esp
403a93:	56                   	push   %esi
403a94:	33 f6                	xor    %esi,%esi
403a96:	89 74 24 08          	mov    %esi,0x8(%esp)
403a9a:	89 74 24 0c          	mov    %esi,0xc(%esp)
403a9e:	39 74 24 24          	cmp    %esi,0x24(%esp)
403aa2:	0f 84 fc 00 00 00    	je     0x403ba4
403aa8:	53                   	push   %ebx
403aa9:	8b 5c 24 1c          	mov    0x1c(%esp),%ebx
403aad:	8d 04 9d 00 00 00 00 	lea    0x0(,%ebx,4),%eax
403ab4:	50                   	push   %eax
403ab5:	6a 40                	push   $0x40
403ab7:	ff 15 78 34 47 00    	call   *0x473478
403abd:	89 44 24 08          	mov    %eax,0x8(%esp)
403ac1:	3b c6                	cmp    %esi,%eax
403ac3:	0f 84 da 00 00 00    	je     0x403ba3
403ac9:	55                   	push   %ebp
403aca:	33 ed                	xor    %ebp,%ebp
403acc:	57                   	push   %edi
403acd:	3b de                	cmp    %esi,%ebx
403acf:	76 3c                	jbe    0x403b0d
403ad1:	8b 4c 24 28          	mov    0x28(%esp),%ecx
403ad5:	2b c8                	sub    %eax,%ecx
403ad7:	8b f8                	mov    %eax,%edi
403ad9:	89 4c 24 1c          	mov    %ecx,0x1c(%esp)
403add:	eb 05                	jmp    0x403ae4
403adf:	90                   	nop
403ae0:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
403ae4:	8b 0c 39             	mov    (%ecx,%edi,1),%ecx
403ae7:	51                   	push   %ecx
403ae8:	e8 f3 fe ff ff       	call   0x4039e0
403aed:	83 c4 04             	add    $0x4,%esp
403af0:	89 07                	mov    %eax,(%edi)
403af2:	85 c0                	test   %eax,%eax
403af4:	0f 84 83 00 00 00    	je     0x403b7d
403afa:	50                   	push   %eax
403afb:	ff 15 88 33 47 00    	call   *0x473388
403b01:	45                   	inc    %ebp
403b02:	83 c7 04             	add    $0x4,%edi
403b05:	8d 74 06 08          	lea    0x8(%esi,%eax,1),%esi
403b09:	3b eb                	cmp    %ebx,%ebp
403b0b:	72 d3                	jb     0x403ae0
403b0d:	83 c6 08             	add    $0x8,%esi
403b10:	56                   	push   %esi
403b11:	6a 40                	push   $0x40
403b13:	ff 15 78 34 47 00    	call   *0x473478
403b19:	8b f8                	mov    %eax,%edi
403b1b:	89 7c 24 14          	mov    %edi,0x14(%esp)
403b1f:	85 ff                	test   %edi,%edi
403b21:	74 5a                	je     0x403b7d
403b23:	6a 02                	push   $0x2
403b25:	56                   	push   %esi
403b26:	57                   	push   %edi
403b27:	ff 15 84 33 47 00    	call   *0x473384
403b2d:	85 c0                	test   %eax,%eax
403b2f:	74 4c                	je     0x403b7d
403b31:	33 ed                	xor    %ebp,%ebp
403b33:	85 db                	test   %ebx,%ebx
403b35:	74 30                	je     0x403b67
403b37:	8b 74 24 2c          	mov    0x2c(%esp),%esi
403b3b:	8b 44 24 10          	mov    0x10(%esp),%eax
403b3f:	2b c6                	sub    %esi,%eax
403b41:	89 44 24 1c          	mov    %eax,0x1c(%esp)
403b45:	eb 04                	jmp    0x403b4b
403b47:	8b 44 24 1c          	mov    0x1c(%esp),%eax
403b4b:	8b 14 30             	mov    (%eax,%esi,1),%edx
403b4e:	8b 06                	mov    (%esi),%eax