40379b:	83 c1 23             	add    $0x23,%ecx
40379e:	51                   	push   %ecx
40379f:	e8 34 62 06 00       	call   0x4699d8
4037a4:	8b c8                	mov    %eax,%ecx
4037a6:	83 c4 04             	add    $0x4,%esp
4037a9:	85 c9                	test   %ecx,%ecx
4037ab:	74 66                	je     0x403813
4037ad:	8d 41 23             	lea    0x23(%ecx),%eax
4037b0:	83 e0 e0             	and    $0xffffffe0,%eax
4037b3:	89 48 fc             	mov    %ecx,-0x4(%eax)
4037b6:	eb 2e                	jmp    0x4037e6
4037b8:	b8 16 00 00 00       	mov    $0x16,%eax
4037bd:	3b f8                	cmp    %eax,%edi
4037bf:	0f 42 f8             	cmovb  %eax,%edi
4037c2:	8d 47 01             	lea    0x1(%edi),%eax
4037c5:	3d 00 10 00 00       	cmp    $0x1000,%eax
4037ca:	72 09                	jb     0x4037d5
4037cc:	8d 48 23             	lea    0x23(%eax),%ecx
4037cf:	3b c8                	cmp    %eax,%ecx
4037d1:	76 3b                	jbe    0x40380e
4037d3:	eb c9                	jmp    0x40379e
4037d5:	85 c0                	test   %eax,%eax
4037d7:	74 0b                	je     0x4037e4
4037d9:	50                   	push   %eax
4037da:	e8 f9 61 06 00       	call   0x4699d8
4037df:	83 c4 04             	add    $0x4,%esp
4037e2:	eb 02                	jmp    0x4037e6
4037e4:	33 c0                	xor    %eax,%eax
4037e6:	8d 4b 01             	lea    0x1(%ebx),%ecx
4037e9:	89 06                	mov    %eax,(%esi)
4037eb:	51                   	push   %ecx
4037ec:	ff 75 fc             	push   -0x4(%ebp)
4037ef:	89 5e 10             	mov    %ebx,0x10(%esi)
4037f2:	50                   	push   %eax
4037f3:	89 7e 14             	mov    %edi,0x14(%esi)
4037f6:	e8 25 7e 06 00       	call   0x46b620
4037fb:	83 c4 0c             	add    $0xc,%esp
4037fe:	8b c6                	mov    %esi,%eax
403800:	5f                   	pop    %edi
403801:	5e                   	pop    %esi
403802:	5b                   	pop    %ebx
403803:	8b e5                	mov    %ebp,%esp
403805:	5d                   	pop    %ebp
403806:	c2 04 00             	ret    $0x4
403809:	e8 d2 db ff ff       	call   0x4013e0
40380e:	e8 2d db ff ff       	call   0x401340
403813:	e8 19 5e 07 00       	call   0x479631
403818:	cc                   	int3
403819:	cc                   	int3
40381a:	cc                   	int3
40381b:	cc                   	int3
40381c:	cc                   	int3
40381d:	cc                   	int3
40381e:	cc                   	int3
40381f:	cc                   	int3
403820:	8b c1                	mov    %ecx,%eax
403822:	c3                   	ret
403823:	cc                   	int3
403824:	cc                   	int3
403825:	cc                   	int3
403826:	cc                   	int3
403827:	cc                   	int3
403828:	cc                   	int3
403829:	cc                   	int3
40382a:	cc                   	int3
40382b:	cc                   	int3
40382c:	cc                   	int3
40382d:	cc                   	int3
40382e:	cc                   	int3
40382f:	cc                   	int3
403830:	55                   	push   %ebp
403831:	8b ec                	mov    %esp,%ebp
403833:	51                   	push   %ecx
403834:	8b 45 08             	mov    0x8(%ebp),%eax
403837:	53                   	push   %ebx
403838:	8b d9                	mov    %ecx,%ebx
40383a:	89 45 fc             	mov    %eax,-0x4(%ebp)
40383d:	56                   	push   %esi
40383e:	8b 33                	mov    (%ebx),%esi
403840:	8b 76 04             	mov    0x4(%esi),%esi
403843:	80 7e 0d 00          	cmpb   $0x0,0xd(%esi)
403847:	75 33                	jne    0x40387c
403849:	57                   	push   %edi
40384a:	66 0f 1f 44 00 00    	nopw   0x0(%eax,%eax,1)
403850:	ff 76 08             	push   0x8(%esi)
403853:	8b cb                	mov    %ebx,%ecx
403855:	50                   	push   %eax
403856:	e8 35 00 00 00       	call   0x403890
40385b:	8b fe                	mov    %esi,%edi
40385d:	8b 36                	mov    (%esi),%esi
40385f:	8d 4f 10             	lea    0x10(%edi),%ecx
403862:	e8 19 03 00 00       	call   0x403b80
403867:	6a 40                	push   $0x40
403869:	57                   	push   %edi
40386a:	e8 99 61 06 00       	call   0x469a08
40386f:	8b 45 fc             	mov    -0x4(%ebp),%eax
403872:	83 c4 08             	add    $0x8,%esp
403875:	80 7e 0d 00          	cmpb   $0x0,0xd(%esi)
403879:	74 d5                	je     0x403850
40387b:	5f                   	pop    %edi
40387c:	6a 40                	push   $0x40
40387e:	ff 33                	push   (%ebx)
403880:	e8 83 61 06 00       	call   0x469a08
403885:	83 c4 08             	add    $0x8,%esp
403888:	5e                   	pop    %esi
403889:	5b                   	pop    %ebx
40388a:	8b e5                	mov    %ebp,%esp
40388c:	5d                   	pop    %ebp
40388d:	c2 04 00             	ret    $0x4
403890:	55                   	push   %ebp
403891:	8b ec                	mov    %esp,%ebp
403893:	51                   	push   %ecx
403894:	8b 45 08             	mov    0x8(%ebp),%eax
403897:	53                   	push   %ebx
403898:	56                   	push   %esi
403899:	8b 75 0c             	mov    0xc(%ebp),%esi
40389c:	8b d9                	mov    %ecx,%ebx
40389e:	89 45 fc             	mov    %eax,-0x4(%ebp)
4038a1:	80 7e 0d 00          	cmpb   $0x0,0xd(%esi)
4038a5:	75 2d                	jne    0x4038d4
4038a7:	57                   	push   %edi
4038a8:	ff 76 08             	push   0x8(%esi)
4038ab:	8b cb                	mov    %ebx,%ecx
4038ad:	50                   	push   %eax
4038ae:	e8 dd ff ff ff       	call   0x403890
4038b3:	8b fe                	mov    %esi,%edi
4038b5:	8b 36                	mov    (%esi),%esi
4038b7:	8d 4f 10             	lea    0x10(%edi),%ecx
4038ba:	e8 c1 02 00 00       	call   0x403b80
4038bf:	6a 40                	push   $0x40
4038c1:	57                   	push   %edi
4038c2:	e8 41 61 06 00       	call   0x469a08
4038c7:	8b 45 fc             	mov    -0x4(%ebp),%eax
4038ca:	83 c4 08             	add    $0x8,%esp
4038cd:	80 7e 0d 00          	cmpb   $0x0,0xd(%esi)
4038d1:	74 d5                	je     0x4038a8
4038d3:	5f                   	pop    %edi
4038d4:	5e                   	pop    %esi
4038d5:	5b                   	pop    %ebx
4038d6:	8b e5                	mov    %ebp,%esp
4038d8:	5d                   	pop    %ebp
4038d9:	c2 08 00             	ret    $0x8
4038dc:	cc                   	int3
4038dd:	cc                   	int3
4038de:	cc                   	int3
4038df:	cc                   	int3
4038e0:	55                   	push   %ebp
4038e1:	8b ec                	mov    %esp,%ebp
4038e3:	51                   	push   %ecx
4038e4:	8b 55 08             	mov    0x8(%ebp),%edx
4038e7:	53                   	push   %ebx
4038e8:	8b d9                	mov    %ecx,%ebx
4038ea:	57                   	push   %edi
4038eb:	8b 7d 10             	mov    0x10(%ebp),%edi
4038ee:	8b 03                	mov    (%ebx),%eax
4038f0:	ff 43 04             	incl   0x4(%ebx)
4038f3:	89 45 fc             	mov    %eax,-0x4(%ebp)
4038f6:	89 57 04             	mov    %edx,0x4(%edi)
4038f9:	3b d0                	cmp    %eax,%edx
4038fb:	75 16                	jne    0x403913
4038fd:	89 38                	mov    %edi,(%eax)
4038ff:	89 78 04             	mov    %edi,0x4(%eax)
403902:	89 78 08             	mov    %edi,0x8(%eax)
403905:	8b c7                	mov    %edi,%eax
403907:	c6 47 0c 01          	movb   $0x1,0xc(%edi)
40390b:	5f                   	pop    %edi
40390c:	5b                   	pop    %ebx
40390d:	8b e5                	mov    %ebp,%esp
40390f:	5d                   	pop    %ebp
403910:	c2 0c 00             	ret    $0xc
403913:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
403917:	75 0d                	jne    0x403926
403919:	89 7a 08             	mov    %edi,0x8(%edx)
40391c:	3b 50 08             	cmp    0x8(%eax),%edx
40391f:	75 0d                	jne    0x40392e
403921:	89 78 08             	mov    %edi,0x8(%eax)
403924:	eb 08                	jmp    0x40392e
403926:	89 3a                	mov    %edi,(%edx)
403928:	3b 10                	cmp    (%eax),%edx
40392a:	75 02                	jne    0x40392e
40392c:	89 38                	mov    %edi,(%eax)
40392e:	8b 4f 04             	mov    0x4(%edi),%ecx
403931:	8b c7                	mov    %edi,%eax
403933:	80 79 0c 00          	cmpb   $0x0,0xc(%ecx)
403937:	0f 85 7d 01 00 00    	jne    0x403aba
40393d:	56                   	push   %esi
40393e:	66 90                	xchg   %ax,%ax
403940:	8b 50 04             	mov    0x4(%eax),%edx
403943:	8b 72 04             	mov    0x4(%edx),%esi
403946:	8b 0e                	mov    (%esi),%ecx
403948:	3b d1                	cmp    %ecx,%edx
40394a:	0f 85 aa 00 00 00    	jne    0x4039fa
403950:	8b 4e 08             	mov    0x8(%esi),%ecx
403953:	80 79 0c 00          	cmpb   $0x0,0xc(%ecx)
403957:	0f 84 a3 00 00 00    	je     0x403a00
40395d:	8b 72 08             	mov    0x8(%edx),%esi
403960:	3b c6                	cmp    %esi,%eax
403962:	75 37                	jne    0x40399b
403964:	8b 0e                	mov    (%esi),%ecx
403966:	8b c2                	mov    %edx,%eax
403968:	89 4a 08             	mov    %ecx,0x8(%edx)
40396b:	8b 0e                	mov    (%esi),%ecx
40396d:	80 79 0d 00          	cmpb   $0x0,0xd(%ecx)
403971:	75 03                	jne    0x403976
403973:	89 41 04             	mov    %eax,0x4(%ecx)
403976:	8b 4a 04             	mov    0x4(%edx),%ecx
403979:	89 4e 04             	mov    %ecx,0x4(%esi)
40397c:	8b 0b                	mov    (%ebx),%ecx
40397e:	3b 41 04             	cmp    0x4(%ecx),%eax
403981:	75 05                	jne    0x403988
403983:	89 71 04             	mov    %esi,0x4(%ecx)
403986:	eb 0e                	jmp    0x403996
403988:	8b 4a 04             	mov    0x4(%edx),%ecx
40398b:	3b 01                	cmp    (%ecx),%eax
40398d:	75 04                	jne    0x403993
40398f:	89 31                	mov    %esi,(%ecx)
403991:	eb 03                	jmp    0x403996
403993:	89 71 08             	mov    %esi,0x8(%ecx)
403996:	89 06                	mov    %eax,(%esi)
403998:	89 72 04             	mov    %esi,0x4(%edx)
40399b:	8b 48 04             	mov    0x4(%eax),%ecx
40399e:	c6 41 0c 01          	movb   $0x1,0xc(%ecx)
4039a2:	8b 48 04             	mov    0x4(%eax),%ecx
4039a5:	8b 49 04             	mov    0x4(%ecx),%ecx
4039a8:	c6 41 0c 00          	movb   $0x0,0xc(%ecx)
4039ac:	8b 48 04             	mov    0x4(%eax),%ecx
4039af:	8b 51 04             	mov    0x4(%ecx),%edx
4039b2:	8b 32                	mov    (%edx),%esi
4039b4:	8b 4e 08             	mov    0x8(%esi),%ecx
4039b7:	89 0a                	mov    %ecx,(%edx)
4039b9:	8b 4e 08             	mov    0x8(%esi),%ecx
4039bc:	80 79 0d 00          	cmpb   $0x0,0xd(%ecx)
4039c0:	75 03                	jne    0x4039c5
4039c2:	89 51 04             	mov    %edx,0x4(%ecx)
4039c5:	8b 4a 04             	mov    0x4(%edx),%ecx
4039c8:	89 4e 04             	mov    %ecx,0x4(%esi)
4039cb:	8b 0b                	mov    (%ebx),%ecx
4039cd:	3b 51 04             	cmp    0x4(%ecx),%edx
4039d0:	75 0b                	jne    0x4039dd
4039d2:	89 71 04             	mov    %esi,0x4(%ecx)
4039d5:	89 56 08             	mov    %edx,0x8(%esi)
4039d8:	e9 cc 00 00 00       	jmp    0x403aa9
4039dd:	8b 4a 04             	mov    0x4(%edx),%ecx
4039e0:	3b 51 08             	cmp    0x8(%ecx),%edx
4039e3:	75 0b                	jne    0x4039f0
4039e5:	89 71 08             	mov    %esi,0x8(%ecx)
4039e8:	89 56 08             	mov    %edx,0x8(%esi)
4039eb:	e9 b9 00 00 00       	jmp    0x403aa9
4039f0:	89 31                	mov    %esi,(%ecx)
4039f2:	89 56 08             	mov    %edx,0x8(%esi)
4039f5:	e9 af 00 00 00       	jmp    0x403aa9
4039fa:	80 79 0c 00          	cmpb   $0x0,0xc(%ecx)
4039fe:	75 1d                	jne    0x403a1d
403a00:	c6 42 0c 01          	movb   $0x1,0xc(%edx)
403a04:	c6 41 0c 01          	movb   $0x1,0xc(%ecx)
403a08:	8b 48 04             	mov    0x4(%eax),%ecx
403a0b:	8b 49 04             	mov    0x4(%ecx),%ecx
403a0e:	c6 41 0c 00          	movb   $0x0,0xc(%ecx)
403a12:	8b 48 04             	mov    0x4(%eax),%ecx
403a15:	8b 41 04             	mov    0x4(%ecx),%eax
403a18:	e9 8f 00 00 00       	jmp    0x403aac
403a1d:	8b 32                	mov    (%edx),%esi
403a1f:	3b c6                	cmp    %esi,%eax
403a21:	75 3a                	jne    0x403a5d
403a23:	8b 4e 08             	mov    0x8(%esi),%ecx
403a26:	8b c2                	mov    %edx,%eax
403a28:	89 08                	mov    %ecx,(%eax)
403a2a:	8b 4e 08             	mov    0x8(%esi),%ecx
403a2d:	80 79 0d 00          	cmpb   $0x0,0xd(%ecx)
403a31:	75 03                	jne    0x403a36
403a33:	89 41 04             	mov    %eax,0x4(%ecx)
403a36:	8b 4a 04             	mov    0x4(%edx),%ecx
403a39:	89 4e 04             	mov    %ecx,0x4(%esi)
403a3c:	8b 0b                	mov    (%ebx),%ecx
403a3e:	3b 41 04             	cmp    0x4(%ecx),%eax
403a41:	75 05                	jne    0x403a48
403a43:	89 71 04             	mov    %esi,0x4(%ecx)
403a46:	eb 0f                	jmp    0x403a57
403a48:	8b 4a 04             	mov    0x4(%edx),%ecx
403a4b:	3b 41 08             	cmp    0x8(%ecx),%eax
403a4e:	75 05                	jne    0x403a55
403a50:	89 71 08             	mov    %esi,0x8(%ecx)
403a53:	eb 02                	jmp    0x403a57
403a55:	89 31                	mov    %esi,(%ecx)
403a57:	89 46 08             	mov    %eax,0x8(%esi)
403a5a:	89 72 04             	mov    %esi,0x4(%edx)
403a5d:	8b 48 04             	mov    0x4(%eax),%ecx
403a60:	c6 41 0c 01          	movb   $0x1,0xc(%ecx)
403a64:	8b 48 04             	mov    0x4(%eax),%ecx
403a67:	8b 49 04             	mov    0x4(%ecx),%ecx
403a6a:	c6 41 0c 00          	movb   $0x0,0xc(%ecx)
403a6e:	8b 48 04             	mov    0x4(%eax),%ecx
403a71:	8b 51 04             	mov    0x4(%ecx),%edx
403a74:	8b 72 08             	mov    0x8(%edx),%esi
403a77:	8b 0e                	mov    (%esi),%ecx
403a79:	89 4a 08             	mov    %ecx,0x8(%edx)
403a7c:	8b 0e                	mov    (%esi),%ecx
403a7e:	80 79 0d 00          	cmpb   $0x0,0xd(%ecx)
403a82:	75 03                	jne    0x403a87
403a84:	89 51 04             	mov    %edx,0x4(%ecx)
403a87:	8b 4a 04             	mov    0x4(%edx),%ecx
403a8a:	89 4e 04             	mov    %ecx,0x4(%esi)
403a8d:	8b 0b                	mov    (%ebx),%ecx
403a8f:	3b 51 04             	cmp    0x4(%ecx),%edx
403a92:	75 05                	jne    0x403a99
403a94:	89 71 04             	mov    %esi,0x4(%ecx)
403a97:	eb 0e                	jmp    0x403aa7
403a99:	8b 4a 04             	mov    0x4(%edx),%ecx
403a9c:	3b 11                	cmp    (%ecx),%edx
403a9e:	75 04                	jne    0x403aa4
403aa0:	89 31                	mov    %esi,(%ecx)
403aa2:	eb 03                	jmp    0x403aa7
403aa4:	89 71 08             	mov    %esi,0x8(%ecx)
403aa7:	89 16                	mov    %edx,(%esi)
403aa9:	89 72 04             	mov    %esi,0x4(%edx)
403aac:	8b 48 04             	mov    0x4(%eax),%ecx
403aaf:	80 79 0c 00          	cmpb   $0x0,0xc(%ecx)
403ab3:	0f 84 87 fe ff ff    	je     0x403940
403ab9:	5e                   	pop    %esi
403aba:	8b 45 fc             	mov    -0x4(%ebp),%eax
403abd:	8b 40 04             	mov    0x4(%eax),%eax
403ac0:	c6 40 0c 01          	movb   $0x1,0xc(%eax)
403ac4:	8b c7                	mov    %edi,%eax
403ac6:	5f                   	pop    %edi
403ac7:	5b                   	pop    %ebx
403ac8:	8b e5                	mov    %ebp,%esp
403aca:	5d                   	pop    %ebp
403acb:	c2 0c 00             	ret    $0xc
403ace:	cc                   	int3
403acf:	cc                   	int3
403ad0:	8b 41 04             	mov    0x4(%ecx),%eax
403ad3:	85 c0                	test   %eax,%eax
403ad5:	74 0b                	je     0x403ae2
403ad7:	6a 40                	push   $0x40
403ad9:	50                   	push   %eax
403ada:	e8 29 5f 06 00       	call   0x469a08
403adf:	83 c4 08             	add    $0x8,%esp
403ae2:	c3                   	ret
403ae3:	cc                   	int3
403ae4:	cc                   	int3
403ae5:	cc                   	int3
403ae6:	cc                   	int3
403ae7:	cc                   	int3
403ae8:	cc                   	int3
403ae9:	cc                   	int3
403aea:	cc                   	int3
403aeb:	cc                   	int3
403aec:	cc                   	int3
403aed:	cc                   	int3
403aee:	cc                   	int3