402830:	89 5d ec             	mov    %ebx,-0x14(%ebp)
402833:	8d 50 02             	lea    0x2(%eax),%edx
402836:	66 8b 08             	mov    (%eax),%cx
402839:	83 c0 02             	add    $0x2,%eax
40283c:	66 3b cb             	cmp    %bx,%cx
40283f:	75 f5                	jne    0x402836
402841:	8b 75 08             	mov    0x8(%ebp),%esi
402844:	2b c2                	sub    %edx,%eax
402846:	d1 f8                	sar    $1,%eax
402848:	8b f8                	mov    %eax,%edi
40284a:	8b 06                	mov    (%esi),%eax
40284c:	8b 48 04             	mov    0x4(%eax),%ecx
40284f:	8b 44 31 18          	mov    0x18(%ecx,%esi,1),%eax
402853:	3b c3                	cmp    %ebx,%eax
402855:	7e 0d                	jle    0x402864
402857:	3b c7                	cmp    %edi,%eax
402859:	7e 09                	jle    0x402864
40285b:	2b c7                	sub    %edi,%eax
40285d:	8b d8                	mov    %eax,%ebx
40285f:	89 45 e8             	mov    %eax,-0x18(%ebp)
402862:	eb 03                	jmp    0x402867
402864:	89 5d e8             	mov    %ebx,-0x18(%ebp)
402867:	56                   	push   %esi
402868:	8d 4d e0             	lea    -0x20(%ebp),%ecx
40286b:	e8 30 fe ff ff       	call   0x4026a0
402870:	80 7d e4 00          	cmpb   $0x0,-0x1c(%ebp)
402874:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
40287b:	75 0a                	jne    0x402887
40287d:	ba 04 00 00 00       	mov    $0x4,%edx
402882:	e9 a8 00 00 00       	jmp    0x40292f
402887:	8b 16                	mov    (%esi),%edx
402889:	8b 42 04             	mov    0x4(%edx),%eax
40288c:	8b 44 30 10          	mov    0x10(%eax,%esi,1),%eax
402890:	25 c0 01 00 00       	and    $0x1c0,%eax
402895:	83 f8 40             	cmp    $0x40,%eax
402898:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
40289c:	74 60                	je     0x4028fe
40289e:	8b ff                	mov    %edi,%edi
4028a0:	85 db                	test   %ebx,%ebx
4028a2:	7e 54                	jle    0x4028f8
4028a4:	8b 0e                	mov    (%esi),%ecx
4028a6:	8b 51 04             	mov    0x4(%ecx),%edx
4028a9:	8b 4c 32 28          	mov    0x28(%edx,%esi,1),%ecx
4028ad:	8d 04 32             	lea    (%edx,%esi,1),%eax
4028b0:	0f b7 50 30          	movzwl 0x30(%eax),%edx
4028b4:	8b 41 24             	mov    0x24(%ecx),%eax
4028b7:	83 38 00             	cmpl   $0x0,(%eax)
4028ba:	74 20                	je     0x4028dc
4028bc:	8b 41 34             	mov    0x34(%ecx),%eax
4028bf:	83 38 00             	cmpl   $0x0,(%eax)
4028c2:	7e 18                	jle    0x4028dc
4028c4:	83 00 ff             	addl   $0xffffffff,(%eax)
4028c7:	8b 49 24             	mov    0x24(%ecx),%ecx
4028ca:	8b 01                	mov    (%ecx),%eax
4028cc:	8d 58 02             	lea    0x2(%eax),%ebx
4028cf:	89 19                	mov    %ebx,(%ecx)
4028d1:	8b 5d e8             	mov    -0x18(%ebp),%ebx
4028d4:	66 89 10             	mov    %dx,(%eax)
4028d7:	0f b7 c2             	movzwl %dx,%eax
4028da:	eb 0e                	jmp    0x4028ea
4028dc:	8b 01                	mov    (%ecx),%eax
4028de:	52                   	push   %edx
4028df:	8b 50 04             	mov    0x4(%eax),%edx
4028e2:	ff d2                	call   *%edx
4028e4:	0f b7 c0             	movzwl %ax,%eax
4028e7:	0f b7 c0             	movzwl %ax,%eax
4028ea:	66 3d ff ff          	cmp    $0xffff,%ax
4028ee:	0f 85 7f 00 00 00    	jne    0x402973
4028f4:	83 4d ec 04          	orl    $0x4,-0x14(%ebp)
4028f8:	83 7d ec 00          	cmpl   $0x0,-0x14(%ebp)
4028fc:	75 1f                	jne    0x40291d
4028fe:	8b 06                	mov    (%esi),%eax
402900:	8b 48 04             	mov    0x4(%eax),%ecx
402903:	8b 4c 31 28          	mov    0x28(%ecx,%esi,1),%ecx
402907:	8b 11                	mov    (%ecx),%edx
402909:	8b 42 20             	mov    0x20(%edx),%eax
40290c:	57                   	push   %edi
40290d:	ff 75 0c             	push   0xc(%ebp)
402910:	ff d0                	call   *%eax
402912:	3b c7                	cmp    %edi,%eax
402914:	74 6a                	je     0x402980
402916:	c7 45 ec 04 00 00 00 	movl   $0x4,-0x14(%ebp)
40291d:	8b 0e                	mov    (%esi),%ecx
40291f:	8b 41 04             	mov    0x4(%ecx),%eax
402922:	03 c6                	add    %esi,%eax
402924:	33 c9                	xor    %ecx,%ecx
402926:	89 48 18             	mov    %ecx,0x18(%eax)
402929:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40292c:	8b 55 ec             	mov    -0x14(%ebp),%edx
40292f:	8b 06                	mov    (%esi),%eax
402931:	8b 48 04             	mov    0x4(%eax),%ecx
402934:	03 ce                	add    %esi,%ecx
402936:	85 d2                	test   %edx,%edx
402938:	74 16                	je     0x402950
40293a:	8b 41 08             	mov    0x8(%ecx),%eax
40293d:	0b c2                	or     %edx,%eax
40293f:	83 79 28 00          	cmpl   $0x0,0x28(%ecx)
402943:	75 03                	jne    0x402948
402945:	83 c8 04             	or     $0x4,%eax
402948:	6a 00                	push   $0x0
40294a:	50                   	push   %eax
40294b:	e8 10 fb ff ff       	call   0x402460
402950:	8d 4d e0             	lea    -0x20(%ebp),%ecx
402953:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
40295a:	e8 31 fe ff ff       	call   0x402790
40295f:	8b c6                	mov    %esi,%eax
402961:	8b 4d f4             	mov    -0xc(%ebp),%ecx
402964:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40296b:	59                   	pop    %ecx
40296c:	5f                   	pop    %edi
40296d:	5e                   	pop    %esi
40296e:	5b                   	pop    %ebx
40296f:	8b e5                	mov    %ebp,%esp
402971:	5d                   	pop    %ebp
402972:	c3                   	ret
402973:	83 eb 01             	sub    $0x1,%ebx
402976:	89 5d e8             	mov    %ebx,-0x18(%ebp)
402979:	e9 22 ff ff ff       	jmp    0x4028a0
40297e:	8b ff                	mov    %edi,%edi
402980:	85 db                	test   %ebx,%ebx
402982:	7e 99                	jle    0x40291d
402984:	8b 0e                	mov    (%esi),%ecx
402986:	8b 51 04             	mov    0x4(%ecx),%edx
402989:	8b 4c 32 28          	mov    0x28(%edx,%esi,1),%ecx
40298d:	8d 04 32             	lea    (%edx,%esi,1),%eax
402990:	0f b7 50 30          	movzwl 0x30(%eax),%edx
402994:	8b 41 24             	mov    0x24(%ecx),%eax
402997:	83 38 00             	cmpl   $0x0,(%eax)
40299a:	74 1d                	je     0x4029b9
40299c:	8b 41 34             	mov    0x34(%ecx),%eax
40299f:	83 38 00             	cmpl   $0x0,(%eax)
4029a2:	7e 15                	jle    0x4029b9
4029a4:	83 00 ff             	addl   $0xffffffff,(%eax)
4029a7:	8b 49 24             	mov    0x24(%ecx),%ecx
4029aa:	8b 01                	mov    (%ecx),%eax
4029ac:	8d 78 02             	lea    0x2(%eax),%edi
4029af:	89 39                	mov    %edi,(%ecx)
4029b1:	66 89 10             	mov    %dx,(%eax)
4029b4:	0f b7 c2             	movzwl %dx,%eax
4029b7:	eb 0e                	jmp    0x4029c7
4029b9:	8b 01                	mov    (%ecx),%eax
4029bb:	52                   	push   %edx
4029bc:	8b 50 04             	mov    0x4(%eax),%edx
4029bf:	ff d2                	call   *%edx
4029c1:	0f b7 c0             	movzwl %ax,%eax
4029c4:	0f b7 c0             	movzwl %ax,%eax
4029c7:	66 3d ff ff          	cmp    $0xffff,%ax
4029cb:	75 09                	jne    0x4029d6
4029cd:	83 4d ec 04          	orl    $0x4,-0x14(%ebp)
4029d1:	e9 47 ff ff ff       	jmp    0x40291d
4029d6:	83 eb 01             	sub    $0x1,%ebx
4029d9:	eb a5                	jmp    0x402980
4029db:	8b 4d 08             	mov    0x8(%ebp),%ecx
4029de:	8b 01                	mov    (%ecx),%eax
4029e0:	8b 40 04             	mov    0x4(%eax),%eax
4029e3:	03 c1                	add    %ecx,%eax
4029e5:	8b 48 08             	mov    0x8(%eax),%ecx
4029e8:	83 c9 04             	or     $0x4,%ecx
4029eb:	83 78 28 00          	cmpl   $0x0,0x28(%eax)
4029ef:	75 03                	jne    0x4029f4
4029f1:	83 c9 04             	or     $0x4,%ecx
4029f4:	83 e1 17             	and    $0x17,%ecx
4029f7:	85 48 0c             	test   %ecx,0xc(%eax)
4029fa:	89 48 08             	mov    %ecx,0x8(%eax)
4029fd:	75 0e                	jne    0x402a0d
4029ff:	b8 05 2a 40 00       	mov    $0x402a05,%eax
402a04:	c3                   	ret
402a05:	8b 75 08             	mov    0x8(%ebp),%esi
402a08:	e9 1f ff ff ff       	jmp    0x40292c
402a0d:	6a 00                	push   $0x0
402a0f:	6a 00                	push   $0x0
402a11:	e8 2c 36 00 00       	call   0x406042
402a16:	cc                   	int3
402a17:	cc                   	int3
402a18:	cc                   	int3
402a19:	cc                   	int3
402a1a:	cc                   	int3
402a1b:	cc                   	int3
402a1c:	cc                   	int3
402a1d:	cc                   	int3
402a1e:	cc                   	int3
402a1f:	cc                   	int3
402a20:	55                   	push   %ebp
402a21:	8b ec                	mov    %esp,%ebp
402a23:	6a ff                	push   $0xffffffff
402a25:	68 68 5b 41 00       	push   $0x415b68
402a2a:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
402a30:	50                   	push   %eax
402a31:	83 ec 14             	sub    $0x14,%esp
402a34:	53                   	push   %ebx
402a35:	56                   	push   %esi
402a36:	57                   	push   %edi
402a37:	a1 20 c5 41 00       	mov    0x41c520,%eax
402a3c:	33 c5                	xor    %ebp,%eax
402a3e:	50                   	push   %eax
402a3f:	8d 45 f4             	lea    -0xc(%ebp),%eax
402a42:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
402a48:	89 65 f0             	mov    %esp,-0x10(%ebp)
402a4b:	8b f9                	mov    %ecx,%edi
402a4d:	89 7d ec             	mov    %edi,-0x14(%ebp)
402a50:	33 f6                	xor    %esi,%esi
402a52:	57                   	push   %edi
402a53:	8d 4d e0             	lea    -0x20(%ebp),%ecx
402a56:	33 db                	xor    %ebx,%ebx
402a58:	89 75 e8             	mov    %esi,-0x18(%ebp)
402a5b:	e8 40 fc ff ff       	call   0x4026a0
402a60:	38 5d e4             	cmp    %bl,-0x1c(%ebp)
402a63:	89 5d fc             	mov    %ebx,-0x4(%ebp)
402a66:	75 0a                	jne    0x402a72
402a68:	be 04 00 00 00       	mov    $0x4,%esi
402a6d:	e9 84 00 00 00       	jmp    0x402af6
402a72:	8b 07                	mov    (%edi),%eax
402a74:	8b 48 04             	mov    0x4(%eax),%ecx
402a77:	8b 4c 39 28          	mov    0x28(%ecx,%edi,1),%ecx
402a7b:	8b 51 24             	mov    0x24(%ecx),%edx
402a7e:	39 1a                	cmp    %ebx,(%edx)
402a80:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
402a84:	74 1f                	je     0x402aa5
402a86:	8b 41 34             	mov    0x34(%ecx),%eax
402a89:	39 18                	cmp    %ebx,(%eax)
402a8b:	7e 18                	jle    0x402aa5
402a8d:	83 00 ff             	addl   $0xffffffff,(%eax)
402a90:	8b 49 24             	mov    0x24(%ecx),%ecx
402a93:	8b 01                	mov    (%ecx),%eax
402a95:	8d 50 02             	lea    0x2(%eax),%edx
402a98:	89 11                	mov    %edx,(%ecx)
402a9a:	8b 4d 08             	mov    0x8(%ebp),%ecx
402a9d:	66 89 08             	mov    %cx,(%eax)
402aa0:	0f b7 c1             	movzwl %cx,%eax
402aa3:	eb 11                	jmp    0x402ab6
402aa5:	8b 01                	mov    (%ecx),%eax
402aa7:	8b 55 08             	mov    0x8(%ebp),%edx
402aaa:	8b 40 04             	mov    0x4(%eax),%eax
402aad:	52                   	push   %edx
402aae:	ff d0                	call   *%eax
402ab0:	0f b7 c0             	movzwl %ax,%eax
402ab3:	0f b7 c0             	movzwl %ax,%eax
402ab6:	66 3d ff ff          	cmp    $0xffff,%ax
402aba:	75 05                	jne    0x402ac1
402abc:	be 04 00 00 00       	mov    $0x4,%esi
402ac1:	89 5d fc             	mov    %ebx,-0x4(%ebp)
402ac4:	eb 30                	jmp    0x402af6
402ac6:	8b 4d ec             	mov    -0x14(%ebp),%ecx
402ac9:	8b 11                	mov    (%ecx),%edx
402acb:	8b 42 04             	mov    0x4(%edx),%eax
402ace:	03 c1                	add    %ecx,%eax
402ad0:	8b 48 08             	mov    0x8(%eax),%ecx
402ad3:	83 c9 04             	or     $0x4,%ecx
402ad6:	83 78 28 00          	cmpl   $0x0,0x28(%eax)
402ada:	75 03                	jne    0x402adf
402adc:	83 c9 04             	or     $0x4,%ecx
402adf:	83 e1 17             	and    $0x17,%ecx
402ae2:	85 48 0c             	test   %ecx,0xc(%eax)
402ae5:	89 48 08             	mov    %ecx,0x8(%eax)
402ae8:	75 52                	jne    0x402b3c
402aea:	b8 f0 2a 40 00       	mov    $0x402af0,%eax
402aef:	c3                   	ret
402af0:	8b 7d ec             	mov    -0x14(%ebp),%edi
402af3:	8b 75 e8             	mov    -0x18(%ebp),%esi
402af6:	8b 07                	mov    (%edi),%eax
402af8:	8b 48 04             	mov    0x4(%eax),%ecx
402afb:	03 cf                	add    %edi,%ecx
402afd:	85 f6                	test   %esi,%esi
402aff:	74 16                	je     0x402b17
402b01:	8b 41 08             	mov    0x8(%ecx),%eax
402b04:	0b c6                	or     %esi,%eax
402b06:	83 79 28 00          	cmpl   $0x0,0x28(%ecx)
402b0a:	75 03                	jne    0x402b0f
402b0c:	83 c8 04             	or     $0x4,%eax
402b0f:	6a 00                	push   $0x0
402b11:	50                   	push   %eax
402b12:	e8 49 f9 ff ff       	call   0x402460
402b17:	8d 4d e0             	lea    -0x20(%ebp),%ecx
402b1a:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
402b21:	e8 6a fc ff ff       	call   0x402790
402b26:	8b c7                	mov    %edi,%eax
402b28:	8b 4d f4             	mov    -0xc(%ebp),%ecx
402b2b:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
402b32:	59                   	pop    %ecx
402b33:	5f                   	pop    %edi
402b34:	5e                   	pop    %esi
402b35:	5b                   	pop    %ebx
402b36:	8b e5                	mov    %ebp,%esp
402b38:	5d                   	pop    %ebp
402b39:	c2 04 00             	ret    $0x4
402b3c:	6a 00                	push   $0x0
402b3e:	6a 00                	push   $0x0
402b40:	e8 fd 34 00 00       	call   0x406042
402b45:	cc                   	int3
402b46:	cc                   	int3
402b47:	cc                   	int3
402b48:	cc                   	int3
402b49:	cc                   	int3
402b4a:	cc                   	int3
402b4b:	cc                   	int3
402b4c:	cc                   	int3
402b4d:	cc                   	int3
402b4e:	cc                   	int3
402b4f:	cc                   	int3
402b50:	83 ec 0c             	sub    $0xc,%esp
402b53:	8b 54 24 14          	mov    0x14(%esp),%edx
402b57:	53                   	push   %ebx
402b58:	55                   	push   %ebp
402b59:	56                   	push   %esi
402b5a:	8b 74 24 1c          	mov    0x1c(%esp),%esi
402b5e:	8b 46 3c             	mov    0x3c(%esi),%eax
402b61:	8d 44 30 78          	lea    0x78(%eax,%esi,1),%eax
402b65:	57                   	push   %edi
402b66:	8b 38                	mov    (%eax),%edi
402b68:	8b 6c 37 1c          	mov    0x1c(%edi,%esi,1),%ebp
402b6c:	03 fe                	add    %esi,%edi
402b6e:	89 44 24 18          	mov    %eax,0x18(%esp)
402b72:	8b 47 24             	mov    0x24(%edi),%eax
402b75:	03 c6                	add    %esi,%eax
402b77:	89 44 24 10          	mov    %eax,0x10(%esp)
402b7b:	8b 47 20             	mov    0x20(%edi),%eax
402b7e:	03 ee                	add    %esi,%ebp
402b80:	03 c6                	add    %esi,%eax
402b82:	33 db                	xor    %ebx,%ebx
402b84:	f7 c2 00 00 ff ff    	test   $0xffff0000,%edx
402b8a:	89 6c 24 14          	mov    %ebp,0x14(%esp)
402b8e:	89 44 24 20          	mov    %eax,0x20(%esp)
402b92:	75 27                	jne    0x402bbb
402b94:	8b 4f 10             	mov    0x10(%edi),%ecx
402b97:	0f b7 c2             	movzwl %dx,%eax
402b9a:	3b c1                	cmp    %ecx,%eax
402b9c:	72 13                	jb     0x402bb1
402b9e:	8b 57 14             	mov    0x14(%edi),%edx
402ba1:	03 d1                	add    %ecx,%edx
402ba3:	3b c2                	cmp    %edx,%eax
402ba5:	77 0a                	ja     0x402bb1
402ba7:	2b c1                	sub    %ecx,%eax
402ba9:	8b 5c 85 00          	mov    0x0(%ebp,%eax,4),%ebx
402bad:	03 de                	add    %esi,%ebx
402baf:	eb 64                	jmp    0x402c15
402bb1:	5f                   	pop    %edi
402bb2:	5e                   	pop    %esi
402bb3:	5d                   	pop    %ebp
402bb4:	33 c0                	xor    %eax,%eax
402bb6:	5b                   	pop    %ebx
402bb7:	83 c4 0c             	add    $0xc,%esp
402bba:	c3                   	ret
402bbb:	33 ed                	xor    %ebp,%ebp
402bbd:	39 5f 18             	cmp    %ebx,0x18(%edi)
402bc0:	76 53                	jbe    0x402c15
402bc2:	eb 08                	jmp    0x402bcc
402bc4:	8b 54 24 24          	mov    0x24(%esp),%edx
402bc8:	8b 44 24 20          	mov    0x20(%esp),%eax
402bcc:	8b 04 a8             	mov    (%eax,%ebp,4),%eax
402bcf:	03 c6                	add    %esi,%eax