40281a:	51                   	push   %ecx
40281b:	e8 c4 0a 00 00       	call   0x4032e4
402820:	83 c4 0c             	add    $0xc,%esp
402823:	8d 04 f3             	lea    (%ebx,%esi,8),%eax
402826:	89 47 04             	mov    %eax,0x4(%edi)
402829:	5f                   	pop    %edi
40282a:	5e                   	pop    %esi
40282b:	5b                   	pop    %ebx
40282c:	c9                   	leave
40282d:	c2 0c 00             	ret    $0xc
402830:	e8 19 af 01 00       	call   0x41d74e
402835:	cc                   	int3
402836:	55                   	push   %ebp
402837:	8b ec                	mov    %esp,%ebp
402839:	51                   	push   %ecx
40283a:	53                   	push   %ebx
40283b:	56                   	push   %esi
40283c:	8b 75 0c             	mov    0xc(%ebp),%esi
40283f:	57                   	push   %edi
402840:	8b f9                	mov    %ecx,%edi
402842:	8b 4d 08             	mov    0x8(%ebp),%ecx
402845:	2b f1                	sub    %ecx,%esi
402847:	c1 fe 03             	sar    $0x3,%esi
40284a:	8b 1f                	mov    (%edi),%ebx
40284c:	8b 57 08             	mov    0x8(%edi),%edx
40284f:	8b 47 04             	mov    0x4(%edi),%eax
402852:	2b d3                	sub    %ebx,%edx
402854:	2b c3                	sub    %ebx,%eax
402856:	c1 fa 03             	sar    $0x3,%edx
402859:	c1 f8 03             	sar    $0x3,%eax
40285c:	89 55 fc             	mov    %edx,-0x4(%ebp)
40285f:	3b f2                	cmp    %edx,%esi
402861:	76 44                	jbe    0x4028a7
402863:	81 fe ff ff ff 1f    	cmp    $0x1fffffff,%esi
402869:	77 73                	ja     0x4028de
40286b:	56                   	push   %esi
40286c:	8b cf                	mov    %edi,%ecx
40286e:	e8 ed 44 01 00       	call   0x416d60
402873:	8b f0                	mov    %eax,%esi
402875:	85 db                	test   %ebx,%ebx
402877:	74 0f                	je     0x402888
402879:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40287c:	c1 e1 03             	shl    $0x3,%ecx
40287f:	51                   	push   %ecx
402880:	53                   	push   %ebx
402881:	e8 a4 0c 00 00       	call   0x40352a
402886:	59                   	pop    %ecx
402887:	59                   	pop    %ecx
402888:	56                   	push   %esi
402889:	8b cf                	mov    %edi,%ecx
40288b:	e8 58 42 01 00       	call   0x416ae8
402890:	51                   	push   %ecx
402891:	ff 75 0c             	push   0xc(%ebp)
402894:	57                   	push   %edi
402895:	ff 37                	push   (%edi)
402897:	ff 75 0c             	push   0xc(%ebp)
40289a:	ff 75 08             	push   0x8(%ebp)
40289d:	e8 dd 3c 00 00       	call   0x40657f
4028a2:	83 c4 18             	add    $0x18,%esp
4028a5:	eb 2d                	jmp    0x4028d4
4028a7:	53                   	push   %ebx
4028a8:	3b f0                	cmp    %eax,%esi
4028aa:	76 19                	jbe    0x4028c5
4028ac:	8d 34 c1             	lea    (%ecx,%eax,8),%esi
4028af:	56                   	push   %esi
4028b0:	51                   	push   %ecx
4028b1:	e8 d3 0b 00 00       	call   0x403489
4028b6:	59                   	pop    %ecx
4028b7:	59                   	pop    %ecx
4028b8:	ff 75 0c             	push   0xc(%ebp)
4028bb:	57                   	push   %edi
4028bc:	ff 77 04             	push   0x4(%edi)
4028bf:	ff 75 0c             	push   0xc(%ebp)
4028c2:	56                   	push   %esi
4028c3:	eb d8                	jmp    0x40289d
4028c5:	ff 75 0c             	push   0xc(%ebp)
4028c8:	51                   	push   %ecx
4028c9:	e8 bb 0b 00 00       	call   0x403489
4028ce:	83 c4 0c             	add    $0xc,%esp
4028d1:	8d 04 f3             	lea    (%ebx,%esi,8),%eax
4028d4:	89 47 04             	mov    %eax,0x4(%edi)
4028d7:	5f                   	pop    %edi
4028d8:	5e                   	pop    %esi
4028d9:	5b                   	pop    %ebx
4028da:	c9                   	leave
4028db:	c2 0c 00             	ret    $0xc
4028de:	e8 76 ae 01 00       	call   0x41d759
4028e3:	cc                   	int3
4028e4:	55                   	push   %ebp
4028e5:	8b ec                	mov    %esp,%ebp
4028e7:	51                   	push   %ecx
4028e8:	53                   	push   %ebx
4028e9:	56                   	push   %esi
4028ea:	8b 75 0c             	mov    0xc(%ebp),%esi
4028ed:	57                   	push   %edi
4028ee:	8b f9                	mov    %ecx,%edi
4028f0:	8b 4d 08             	mov    0x8(%ebp),%ecx
4028f3:	2b f1                	sub    %ecx,%esi
4028f5:	c1 fe 03             	sar    $0x3,%esi
4028f8:	8b 1f                	mov    (%edi),%ebx
4028fa:	8b 57 08             	mov    0x8(%edi),%edx
4028fd:	8b 47 04             	mov    0x4(%edi),%eax
402900:	2b d3                	sub    %ebx,%edx
402902:	2b c3                	sub    %ebx,%eax
402904:	c1 fa 03             	sar    $0x3,%edx
402907:	c1 f8 03             	sar    $0x3,%eax
40290a:	89 55 fc             	mov    %edx,-0x4(%ebp)
40290d:	3b f2                	cmp    %edx,%esi
40290f:	76 44                	jbe    0x402955
402911:	81 fe ff ff ff 1f    	cmp    $0x1fffffff,%esi
402917:	77 73                	ja     0x40298c
402919:	56                   	push   %esi
40291a:	8b cf                	mov    %edi,%ecx
40291c:	e8 68 44 01 00       	call   0x416d89
402921:	8b f0                	mov    %eax,%esi
402923:	85 db                	test   %ebx,%ebx
402925:	74 0f                	je     0x402936
402927:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40292a:	c1 e1 03             	shl    $0x3,%ecx
40292d:	51                   	push   %ecx
40292e:	53                   	push   %ebx
40292f:	e8 f6 0b 00 00       	call   0x40352a
402934:	59                   	pop    %ecx
402935:	59                   	pop    %ecx
402936:	56                   	push   %esi
402937:	8b cf                	mov    %edi,%ecx
402939:	e8 ed 41 01 00       	call   0x416b2b
40293e:	51                   	push   %ecx
40293f:	ff 75 0c             	push   0xc(%ebp)
402942:	57                   	push   %edi
402943:	ff 37                	push   (%edi)
402945:	ff 75 0c             	push   0xc(%ebp)
402948:	ff 75 08             	push   0x8(%ebp)
40294b:	e8 55 3c 00 00       	call   0x4065a5
402950:	83 c4 18             	add    $0x18,%esp
402953:	eb 2d                	jmp    0x402982
402955:	53                   	push   %ebx
402956:	3b f0                	cmp    %eax,%esi
402958:	76 19                	jbe    0x402973
40295a:	8d 34 c1             	lea    (%ecx,%eax,8),%esi
40295d:	56                   	push   %esi
40295e:	51                   	push   %ecx
40295f:	e8 4d 0b 00 00       	call   0x4034b1
402964:	59                   	pop    %ecx
402965:	59                   	pop    %ecx
402966:	ff 75 0c             	push   0xc(%ebp)
402969:	57                   	push   %edi
40296a:	ff 77 04             	push   0x4(%edi)
40296d:	ff 75 0c             	push   0xc(%ebp)
402970:	56                   	push   %esi
402971:	eb d8                	jmp    0x40294b
402973:	ff 75 0c             	push   0xc(%ebp)
402976:	51                   	push   %ecx
402977:	e8 35 0b 00 00       	call   0x4034b1
40297c:	83 c4 0c             	add    $0xc,%esp
40297f:	8d 04 f3             	lea    (%ebx,%esi,8),%eax
402982:	89 47 04             	mov    %eax,0x4(%edi)
402985:	5f                   	pop    %edi
402986:	5e                   	pop    %esi
402987:	5b                   	pop    %ebx
402988:	c9                   	leave
402989:	c2 0c 00             	ret    $0xc
40298c:	e8 d3 ad 01 00       	call   0x41d764
402991:	cc                   	int3
402992:	55                   	push   %ebp
402993:	8b ec                	mov    %esp,%ebp
402995:	53                   	push   %ebx
402996:	56                   	push   %esi
402997:	8b 75 08             	mov    0x8(%ebp),%esi
40299a:	8b de                	mov    %esi,%ebx
40299c:	57                   	push   %edi
40299d:	8b 7d 10             	mov    0x10(%ebp),%edi
4029a0:	3b 75 0c             	cmp    0xc(%ebp),%esi
4029a3:	74 21                	je     0x4029c6
4029a5:	3b 7d 14             	cmp    0x14(%ebp),%edi
4029a8:	74 1f                	je     0x4029c9
4029aa:	0f b7 0f             	movzwl (%edi),%ecx
4029ad:	83 c7 02             	add    $0x2,%edi
4029b0:	0f b7 06             	movzwl (%esi),%eax
4029b3:	83 c6 02             	add    $0x2,%esi
4029b6:	51                   	push   %ecx
4029b7:	50                   	push   %eax
4029b8:	8d 4d 18             	lea    0x18(%ebp),%ecx
4029bb:	e8 96 d7 00 00       	call   0x410156
4029c0:	84 c0                	test   %al,%al
4029c2:	74 08                	je     0x4029cc
4029c4:	eb da                	jmp    0x4029a0
4029c6:	3b 7d 14             	cmp    0x14(%ebp),%edi
4029c9:	0f 44 de             	cmove  %esi,%ebx
4029cc:	5f                   	pop    %edi
4029cd:	5e                   	pop    %esi
4029ce:	8b c3                	mov    %ebx,%eax
4029d0:	5b                   	pop    %ebx
4029d1:	5d                   	pop    %ebp
4029d2:	c3                   	ret
4029d3:	55                   	push   %ebp
4029d4:	8b ec                	mov    %esp,%ebp
4029d6:	8b 55 08             	mov    0x8(%ebp),%edx
4029d9:	56                   	push   %esi
4029da:	8b 75 10             	mov    0x10(%ebp),%esi
4029dd:	57                   	push   %edi
4029de:	8b fa                	mov    %edx,%edi
4029e0:	3b 55 0c             	cmp    0xc(%ebp),%edx
4029e3:	74 18                	je     0x4029fd
4029e5:	3b 75 14             	cmp    0x14(%ebp),%esi
4029e8:	74 16                	je     0x402a00
4029ea:	0f b7 0e             	movzwl (%esi),%ecx
4029ed:	83 c6 02             	add    $0x2,%esi
4029f0:	0f b7 02             	movzwl (%edx),%eax
4029f3:	83 c2 02             	add    $0x2,%edx
4029f6:	66 3b c1             	cmp    %cx,%ax
4029f9:	75 08                	jne    0x402a03
4029fb:	eb e3                	jmp    0x4029e0
4029fd:	3b 75 14             	cmp    0x14(%ebp),%esi
402a00:	0f 44 fa             	cmove  %edx,%edi
402a03:	8b c7                	mov    %edi,%eax
402a05:	5f                   	pop    %edi
402a06:	5e                   	pop    %esi
402a07:	5d                   	pop    %ebp
402a08:	c3                   	ret
402a09:	55                   	push   %ebp
402a0a:	8b ec                	mov    %esp,%ebp
402a0c:	53                   	push   %ebx
402a0d:	56                   	push   %esi
402a0e:	8b 75 08             	mov    0x8(%ebp),%esi
402a11:	8b de                	mov    %esi,%ebx
402a13:	57                   	push   %edi
402a14:	8b 7d 10             	mov    0x10(%ebp),%edi
402a17:	3b 75 0c             	cmp    0xc(%ebp),%esi
402a1a:	74 21                	je     0x402a3d
402a1c:	3b 7d 14             	cmp    0x14(%ebp),%edi
402a1f:	74 1f                	je     0x402a40
402a21:	0f b7 0f             	movzwl (%edi),%ecx
402a24:	83 c7 02             	add    $0x2,%edi
402a27:	0f b7 06             	movzwl (%esi),%eax
402a2a:	83 c6 02             	add    $0x2,%esi
402a2d:	51                   	push   %ecx
402a2e:	50                   	push   %eax
402a2f:	8d 4d 18             	lea    0x18(%ebp),%ecx
402a32:	e8 d1 d7 00 00       	call   0x410208
402a37:	84 c0                	test   %al,%al
402a39:	74 08                	je     0x402a43
402a3b:	eb da                	jmp    0x402a17
402a3d:	3b 7d 14             	cmp    0x14(%ebp),%edi
402a40:	0f 44 de             	cmove  %esi,%ebx
402a43:	5f                   	pop    %edi
402a44:	5e                   	pop    %esi
402a45:	8b c3                	mov    %ebx,%eax
402a47:	5b                   	pop    %ebx
402a48:	5d                   	pop    %ebp
402a49:	c3                   	ret
402a4a:	55                   	push   %ebp
402a4b:	8b ec                	mov    %esp,%ebp
402a4d:	8b 45 0c             	mov    0xc(%ebp),%eax
402a50:	56                   	push   %esi
402a51:	57                   	push   %edi
402a52:	8b 7d 14             	mov    0x14(%ebp),%edi
402a55:	8b f0                	mov    %eax,%esi
402a57:	3b 45 10             	cmp    0x10(%ebp),%eax
402a5a:	74 23                	je     0x402a7f
402a5c:	3b 7d 18             	cmp    0x18(%ebp),%edi
402a5f:	74 21                	je     0x402a82
402a61:	8a 17                	mov    (%edi),%dl
402a63:	8d 48 01             	lea    0x1(%eax),%ecx
402a66:	89 4d 0c             	mov    %ecx,0xc(%ebp)
402a69:	47                   	inc    %edi
402a6a:	8a 00                	mov    (%eax),%al
402a6c:	8d 4d 1c             	lea    0x1c(%ebp),%ecx
402a6f:	52                   	push   %edx
402a70:	50                   	push   %eax
402a71:	e8 b8 d6 00 00       	call   0x41012e
402a76:	84 c0                	test   %al,%al
402a78:	74 0b                	je     0x402a85
402a7a:	8b 45 0c             	mov    0xc(%ebp),%eax
402a7d:	eb d8                	jmp    0x402a57
402a7f:	3b 7d 18             	cmp    0x18(%ebp),%edi
402a82:	0f 44 f0             	cmove  %eax,%esi
402a85:	8b 45 08             	mov    0x8(%ebp),%eax
402a88:	5f                   	pop    %edi
402a89:	89 30                	mov    %esi,(%eax)
402a8b:	5e                   	pop    %esi
402a8c:	5d                   	pop    %ebp
402a8d:	c3                   	ret
402a8e:	55                   	push   %ebp
402a8f:	8b ec                	mov    %esp,%ebp
402a91:	8b 4d 0c             	mov    0xc(%ebp),%ecx
402a94:	8b d1                	mov    %ecx,%edx
402a96:	53                   	push   %ebx
402a97:	56                   	push   %esi
402a98:	8b 75 14             	mov    0x14(%ebp),%esi
402a9b:	3b 4d 10             	cmp    0x10(%ebp),%ecx
402a9e:	74 16                	je     0x402ab6
402aa0:	3b 75 18             	cmp    0x18(%ebp),%esi
402aa3:	74 14                	je     0x402ab9
402aa5:	8a 1e                	mov    (%esi),%bl
402aa7:	8b c1                	mov    %ecx,%eax
402aa9:	46                   	inc    %esi
402aaa:	8d 48 01             	lea    0x1(%eax),%ecx
402aad:	89 4d 0c             	mov    %ecx,0xc(%ebp)
402ab0:	38 18                	cmp    %bl,(%eax)
402ab2:	75 08                	jne    0x402abc
402ab4:	eb e5                	jmp    0x402a9b
402ab6:	3b 75 18             	cmp    0x18(%ebp),%esi
402ab9:	0f 44 d1             	cmove  %ecx,%edx
402abc:	8b 45 08             	mov    0x8(%ebp),%eax
402abf:	5e                   	pop    %esi
402ac0:	5b                   	pop    %ebx
402ac1:	89 10                	mov    %edx,(%eax)
402ac3:	5d                   	pop    %ebp
402ac4:	c3                   	ret
402ac5:	55                   	push   %ebp
402ac6:	8b ec                	mov    %esp,%ebp
402ac8:	8b 45 0c             	mov    0xc(%ebp),%eax
402acb:	56                   	push   %esi
402acc:	57                   	push   %edi
402acd:	8b 7d 14             	mov    0x14(%ebp),%edi
402ad0:	8b f0                	mov    %eax,%esi
402ad2:	3b 45 10             	cmp    0x10(%ebp),%eax
402ad5:	74 23                	je     0x402afa
402ad7:	3b 7d 18             	cmp    0x18(%ebp),%edi
402ada:	74 21                	je     0x402afd
402adc:	8a 17                	mov    (%edi),%dl
402ade:	8d 48 01             	lea    0x1(%eax),%ecx
402ae1:	89 4d 0c             	mov    %ecx,0xc(%ebp)
402ae4:	47                   	inc    %edi
402ae5:	8a 00                	mov    (%eax),%al
402ae7:	8d 4d 1c             	lea    0x1c(%ebp),%ecx
402aea:	52                   	push   %edx
402aeb:	50                   	push   %eax
402aec:	e8 e9 d6 00 00       	call   0x4101da
402af1:	84 c0                	test   %al,%al
402af3:	74 0b                	je     0x402b00
402af5:	8b 45 0c             	mov    0xc(%ebp),%eax
402af8:	eb d8                	jmp    0x402ad2
402afa:	3b 7d 18             	cmp    0x18(%ebp),%edi
402afd:	0f 44 f0             	cmove  %eax,%esi
402b00:	8b 45 08             	mov    0x8(%ebp),%eax
402b03:	5f                   	pop    %edi
402b04:	89 30                	mov    %esi,(%eax)
402b06:	5e                   	pop    %esi
402b07:	5d                   	pop    %ebp
402b08:	c3                   	ret
402b09:	55                   	push   %ebp
402b0a:	8b ec                	mov    %esp,%ebp
402b0c:	8b 4d 0c             	mov    0xc(%ebp),%ecx
402b0f:	56                   	push   %esi
402b10:	8b f1                	mov    %ecx,%esi
402b12:	8b 55 14             	mov    0x14(%ebp),%edx
402b15:	3b 4d 10             	cmp    0x10(%ebp),%ecx
402b18:	74 28                	je     0x402b42