402837:	ff 75 fc             	push   -0x4(%ebp)
40283a:	eb 1b                	jmp    0x402857
40283c:	53                   	push   %ebx
40283d:	50                   	push   %eax
40283e:	ff 75 0c             	push   0xc(%ebp)
402841:	ff 75 08             	push   0x8(%ebp)
402844:	e8 a4 fd ff ff       	call   0x4025ed
402849:	8b f0                	mov    %eax,%esi
40284b:	85 f6                	test   %esi,%esi
40284d:	78 14                	js     0x402863
40284f:	8d 45 f8             	lea    -0x8(%ebp),%eax
402852:	50                   	push   %eax
402853:	ff 75 14             	push   0x14(%ebp)
402856:	53                   	push   %ebx
402857:	e8 87 f2 02 00       	call   0x431ae3
40285c:	83 c4 0c             	add    $0xc,%esp
40285f:	85 c0                	test   %eax,%eax
402861:	75 d9                	jne    0x40283c
402863:	39 5d fc             	cmp    %ebx,-0x4(%ebp)
402866:	74 08                	je     0x402870
402868:	ff 75 fc             	push   -0x4(%ebp)
40286b:	e8 29 11 00 00       	call   0x403999
402870:	8b c6                	mov    %esi,%eax
402872:	5e                   	pop    %esi
402873:	5b                   	pop    %ebx
402874:	8b e5                	mov    %ebp,%esp
402876:	5d                   	pop    %ebp
402877:	c2 10 00             	ret    $0x10
40287a:	55                   	push   %ebp
40287b:	8b ec                	mov    %esp,%ebp
40287d:	51                   	push   %ecx
40287e:	51                   	push   %ecx
40287f:	8d 45 f8             	lea    -0x8(%ebp),%eax
402882:	0f 57 c0             	xorps  %xmm0,%xmm0
402885:	50                   	push   %eax
402886:	ff 75 0c             	push   0xc(%ebp)
402889:	66 0f 13 45 f8       	movlpd %xmm0,-0x8(%ebp)
40288e:	ff 75 08             	push   0x8(%ebp)
402891:	e8 37 00 00 00       	call   0x4028cd
402896:	8b d0                	mov    %eax,%edx
402898:	85 d2                	test   %edx,%edx
40289a:	78 29                	js     0x4028c5
40289c:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40289f:	56                   	push   %esi
4028a0:	8b 75 f8             	mov    -0x8(%ebp),%esi
4028a3:	8b c6                	mov    %esi,%eax
4028a5:	05 00 00 00 80       	add    $0x80000000,%eax
4028aa:	83 d1 00             	adc    $0x0,%ecx
4028ad:	85 c9                	test   %ecx,%ecx
4028af:	77 0e                	ja     0x4028bf
4028b1:	72 05                	jb     0x4028b8
4028b3:	83 f8 ff             	cmp    $0xffffffff,%eax
4028b6:	77 07                	ja     0x4028bf
4028b8:	8b 45 10             	mov    0x10(%ebp),%eax
4028bb:	89 30                	mov    %esi,(%eax)
4028bd:	eb 05                	jmp    0x4028c4
4028bf:	ba 0a 00 02 80       	mov    $0x8002000a,%edx
4028c4:	5e                   	pop    %esi
4028c5:	8b c2                	mov    %edx,%eax
4028c7:	8b e5                	mov    %ebp,%esp
4028c9:	5d                   	pop    %ebp
4028ca:	c2 0c 00             	ret    $0xc
4028cd:	55                   	push   %ebp
4028ce:	8b ec                	mov    %esp,%ebp
4028d0:	83 ec 10             	sub    $0x10,%esp
4028d3:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4028d6:	33 d2                	xor    %edx,%edx
4028d8:	53                   	push   %ebx
4028d9:	33 db                	xor    %ebx,%ebx
4028db:	42                   	inc    %edx
4028dc:	89 55 f0             	mov    %edx,-0x10(%ebp)
4028df:	8b c3                	mov    %ebx,%eax
4028e1:	89 45 fc             	mov    %eax,-0x4(%ebp)
4028e4:	89 5d f8             	mov    %ebx,-0x8(%ebp)
4028e7:	56                   	push   %esi
4028e8:	8b 75 08             	mov    0x8(%ebp),%esi
4028eb:	57                   	push   %edi
4028ec:	8b fb                	mov    %ebx,%edi
4028ee:	89 7d f4             	mov    %edi,-0xc(%ebp)
4028f1:	85 c9                	test   %ecx,%ecx
4028f3:	75 1c                	jne    0x402911
4028f5:	56                   	push   %esi
4028f6:	ff 15 f8 b0 44 00    	call   *0x44b0f8
4028fc:	8b c8                	mov    %eax,%ecx
4028fe:	89 4d 0c             	mov    %ecx,0xc(%ebp)
402901:	85 c9                	test   %ecx,%ecx
402903:	75 07                	jne    0x40290c
402905:	bb 57 00 07 80       	mov    $0x80070057,%ebx
40290a:	eb 74                	jmp    0x402980
40290c:	33 d2                	xor    %edx,%edx
40290e:	8b c3                	mov    %ebx,%eax
402910:	42                   	inc    %edx
402911:	6a 2d                	push   $0x2d
402913:	5f                   	pop    %edi
402914:	66 3b 3e             	cmp    (%esi),%di
402917:	8b fb                	mov    %ebx,%edi
402919:	75 0f                	jne    0x40292a
40291b:	3b ca                	cmp    %edx,%ecx
40291d:	76 e6                	jbe    0x402905
40291f:	8b c2                	mov    %edx,%eax
402921:	83 ca ff             	or     $0xffffffff,%edx
402924:	89 45 fc             	mov    %eax,-0x4(%ebp)
402927:	89 55 f0             	mov    %edx,-0x10(%ebp)
40292a:	3b c1                	cmp    %ecx,%eax
40292c:	73 47                	jae    0x402975
40292e:	0f b7 04 46          	movzwl (%esi,%eax,2),%eax
402932:	83 e8 30             	sub    $0x30,%eax
402935:	78 ce                	js     0x402905
402937:	83 f8 09             	cmp    $0x9,%eax
40293a:	7f c9                	jg     0x402905
40293c:	0f af c2             	imul   %edx,%eax
40293f:	53                   	push   %ebx
402940:	6a 0a                	push   $0xa
402942:	ff 75 f4             	push   -0xc(%ebp)
402945:	99                   	cltd
402946:	8b f0                	mov    %eax,%esi
402948:	8b fa                	mov    %edx,%edi
40294a:	8b 45 f8             	mov    -0x8(%ebp),%eax
40294d:	50                   	push   %eax
40294e:	e8 2d b7 02 00       	call   0x42e080
402953:	03 f0                	add    %eax,%esi
402955:	89 75 f8             	mov    %esi,-0x8(%ebp)
402958:	13 fa                	adc    %edx,%edi
40295a:	8b 55 f0             	mov    -0x10(%ebp),%edx
40295d:	8b c7                	mov    %edi,%eax
40295f:	89 7d f4             	mov    %edi,-0xc(%ebp)
402962:	33 c2                	xor    %edx,%eax
402964:	7c 25                	jl     0x40298b
402966:	8b 45 fc             	mov    -0x4(%ebp),%eax
402969:	8b 75 08             	mov    0x8(%ebp),%esi
40296c:	40                   	inc    %eax
40296d:	89 45 fc             	mov    %eax,-0x4(%ebp)
402970:	3b 45 0c             	cmp    0xc(%ebp),%eax
402973:	72 b9                	jb     0x40292e
402975:	8b 4d 10             	mov    0x10(%ebp),%ecx
402978:	8b 45 f8             	mov    -0x8(%ebp),%eax
40297b:	89 01                	mov    %eax,(%ecx)
40297d:	89 79 04             	mov    %edi,0x4(%ecx)
402980:	5f                   	pop    %edi
402981:	5e                   	pop    %esi
402982:	8b c3                	mov    %ebx,%eax
402984:	5b                   	pop    %ebx
402985:	8b e5                	mov    %ebp,%esp
402987:	5d                   	pop    %ebp
402988:	c2 0c 00             	ret    $0xc
40298b:	bb 0a 00 02 80       	mov    $0x8002000a,%ebx
402990:	eb ee                	jmp    0x402980
402992:	55                   	push   %ebp
402993:	8b ec                	mov    %esp,%ebp
402995:	51                   	push   %ecx
402996:	51                   	push   %ecx
402997:	8d 45 f8             	lea    -0x8(%ebp),%eax
40299a:	0f 57 c0             	xorps  %xmm0,%xmm0
40299d:	50                   	push   %eax
40299e:	ff 75 0c             	push   0xc(%ebp)
4029a1:	66 0f 13 45 f8       	movlpd %xmm0,-0x8(%ebp)
4029a6:	ff 75 08             	push   0x8(%ebp)
4029a9:	e8 74 00 00 00       	call   0x402a22
4029ae:	8b c8                	mov    %eax,%ecx
4029b0:	85 c9                	test   %ecx,%ecx
4029b2:	78 20                	js     0x4029d4
4029b4:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
4029b8:	8b 55 f8             	mov    -0x8(%ebp),%edx
4029bb:	72 11                	jb     0x4029ce
4029bd:	77 08                	ja     0x4029c7
4029bf:	81 fa ff ff 00 00    	cmp    $0xffff,%edx
4029c5:	76 07                	jbe    0x4029ce
4029c7:	b9 0a 00 02 80       	mov    $0x8002000a,%ecx
4029cc:	eb 06                	jmp    0x4029d4
4029ce:	8b 45 10             	mov    0x10(%ebp),%eax
4029d1:	66 89 10             	mov    %dx,(%eax)
4029d4:	8b c1                	mov    %ecx,%eax
4029d6:	8b e5                	mov    %ebp,%esp
4029d8:	5d                   	pop    %ebp
4029d9:	c2 0c 00             	ret    $0xc
4029dc:	55                   	push   %ebp
4029dd:	8b ec                	mov    %esp,%ebp
4029df:	51                   	push   %ecx
4029e0:	51                   	push   %ecx
4029e1:	8d 45 f8             	lea    -0x8(%ebp),%eax
4029e4:	0f 57 c0             	xorps  %xmm0,%xmm0
4029e7:	50                   	push   %eax
4029e8:	ff 75 0c             	push   0xc(%ebp)
4029eb:	66 0f 13 45 f8       	movlpd %xmm0,-0x8(%ebp)
4029f0:	ff 75 08             	push   0x8(%ebp)
4029f3:	e8 2a 00 00 00       	call   0x402a22
4029f8:	8b c8                	mov    %eax,%ecx
4029fa:	85 c9                	test   %ecx,%ecx
4029fc:	78 1c                	js     0x402a1a
4029fe:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
402a02:	8b 55 f8             	mov    -0x8(%ebp),%edx
402a05:	72 0e                	jb     0x402a15
402a07:	77 05                	ja     0x402a0e
402a09:	83 fa ff             	cmp    $0xffffffff,%edx
402a0c:	76 07                	jbe    0x402a15
402a0e:	b9 0a 00 02 80       	mov    $0x8002000a,%ecx
402a13:	eb 05                	jmp    0x402a1a
402a15:	8b 45 10             	mov    0x10(%ebp),%eax
402a18:	89 10                	mov    %edx,(%eax)
402a1a:	8b c1                	mov    %ecx,%eax
402a1c:	8b e5                	mov    %ebp,%esp
402a1e:	5d                   	pop    %ebp
402a1f:	c2 0c 00             	ret    $0xc
402a22:	55                   	push   %ebp
402a23:	8b ec                	mov    %esp,%ebp
402a25:	83 ec 10             	sub    $0x10,%esp
402a28:	53                   	push   %ebx
402a29:	8b 5d 08             	mov    0x8(%ebp),%ebx
402a2c:	0f 57 c0             	xorps  %xmm0,%xmm0
402a2f:	56                   	push   %esi
402a30:	33 f6                	xor    %esi,%esi
402a32:	66 0f 13 45 f0       	movlpd %xmm0,-0x10(%ebp)
402a37:	57                   	push   %edi
402a38:	8b 7d 0c             	mov    0xc(%ebp),%edi
402a3b:	8b c6                	mov    %esi,%eax
402a3d:	89 45 f8             	mov    %eax,-0x8(%ebp)
402a40:	85 ff                	test   %edi,%edi
402a42:	75 0f                	jne    0x402a53
402a44:	53                   	push   %ebx
402a45:	ff 15 f8 b0 44 00    	call   *0x44b0f8
402a4b:	8b f8                	mov    %eax,%edi
402a4d:	85 ff                	test   %edi,%edi
402a4f:	74 63                	je     0x402ab4
402a51:	8b c6                	mov    %esi,%eax
402a53:	8b 55 f4             	mov    -0xc(%ebp),%edx
402a56:	8b 4d f0             	mov    -0x10(%ebp),%ecx
402a59:	89 55 fc             	mov    %edx,-0x4(%ebp)
402a5c:	89 4d 0c             	mov    %ecx,0xc(%ebp)
402a5f:	eb 06                	jmp    0x402a67
402a61:	8b 4d 0c             	mov    0xc(%ebp),%ecx
402a64:	8b 55 fc             	mov    -0x4(%ebp),%edx
402a67:	0f b7 1c 43          	movzwl (%ebx,%eax,2),%ebx
402a6b:	83 eb 30             	sub    $0x30,%ebx
402a6e:	83 fb 09             	cmp    $0x9,%ebx
402a71:	77 41                	ja     0x402ab4
402a73:	56                   	push   %esi
402a74:	6a 0a                	push   $0xa
402a76:	52                   	push   %edx
402a77:	51                   	push   %ecx
402a78:	e8 03 b6 02 00       	call   0x42e080
402a7d:	8b c8                	mov    %eax,%ecx
402a7f:	03 cb                	add    %ebx,%ecx
402a81:	13 d6                	adc    %esi,%edx
402a83:	3b 55 fc             	cmp    -0x4(%ebp),%edx
402a86:	72 25                	jb     0x402aad
402a88:	77 05                	ja     0x402a8f
402a8a:	3b 4d 0c             	cmp    0xc(%ebp),%ecx
402a8d:	72 1e                	jb     0x402aad
402a8f:	8b 45 f8             	mov    -0x8(%ebp),%eax
402a92:	8b 5d 08             	mov    0x8(%ebp),%ebx
402a95:	40                   	inc    %eax
402a96:	89 4d 0c             	mov    %ecx,0xc(%ebp)
402a99:	89 55 fc             	mov    %edx,-0x4(%ebp)
402a9c:	89 45 f8             	mov    %eax,-0x8(%ebp)
402a9f:	3b c7                	cmp    %edi,%eax
402aa1:	72 be                	jb     0x402a61
402aa3:	8b 45 10             	mov    0x10(%ebp),%eax
402aa6:	89 08                	mov    %ecx,(%eax)
402aa8:	89 50 04             	mov    %edx,0x4(%eax)
402aab:	eb 0c                	jmp    0x402ab9
402aad:	be 0a 00 02 80       	mov    $0x8002000a,%esi
402ab2:	eb 05                	jmp    0x402ab9
402ab4:	be 57 00 07 80       	mov    $0x80070057,%esi
402ab9:	5f                   	pop    %edi
402aba:	8b c6                	mov    %esi,%eax
402abc:	5e                   	pop    %esi
402abd:	5b                   	pop    %ebx
402abe:	8b e5                	mov    %ebp,%esp
402ac0:	5d                   	pop    %ebp
402ac1:	c2 0c 00             	ret    $0xc
402ac4:	b8 08 aa 46 00       	mov    $0x46aa08,%eax
402ac9:	c3                   	ret
402aca:	55                   	push   %ebp
402acb:	8b ec                	mov    %esp,%ebp
402acd:	ff 75 18             	push   0x18(%ebp)
402ad0:	ff 75 14             	push   0x14(%ebp)
402ad3:	ff 75 10             	push   0x10(%ebp)
402ad6:	ff 75 0c             	push   0xc(%ebp)
402ad9:	ff 75 08             	push   0x8(%ebp)
402adc:	e8 e3 ff ff ff       	call   0x402ac4
402ae1:	8b 08                	mov    (%eax),%ecx
402ae3:	ff 70 04             	push   0x4(%eax)
402ae6:	83 c9 01             	or     $0x1,%ecx
402ae9:	51                   	push   %ecx
402aea:	e8 48 10 03 00       	call   0x433b37
402aef:	83 c9 ff             	or     $0xffffffff,%ecx
402af2:	83 c4 1c             	add    $0x1c,%esp
402af5:	85 c0                	test   %eax,%eax
402af7:	0f 48 c1             	cmovs  %ecx,%eax
402afa:	5d                   	pop    %ebp
402afb:	c3                   	ret
402afc:	55                   	push   %ebp
402afd:	8b ec                	mov    %esp,%ebp
402aff:	ff 75 18             	push   0x18(%ebp)
402b02:	ff 75 14             	push   0x14(%ebp)
402b05:	ff 75 10             	push   0x10(%ebp)
402b08:	ff 75 0c             	push   0xc(%ebp)
402b0b:	ff 75 08             	push   0x8(%ebp)
402b0e:	e8 b1 ff ff ff       	call   0x402ac4
402b13:	8b 08                	mov    (%eax),%ecx
402b15:	ff 70 04             	push   0x4(%eax)
402b18:	83 c9 01             	or     $0x1,%ecx
402b1b:	51                   	push   %ecx
402b1c:	e8 3a 10 03 00       	call   0x433b5b
402b21:	83 c9 ff             	or     $0xffffffff,%ecx
402b24:	83 c4 1c             	add    $0x1c,%esp
402b27:	85 c0                	test   %eax,%eax
402b29:	0f 48 c1             	cmovs  %ecx,%eax
402b2c:	5d                   	pop    %ebp
402b2d:	c3                   	ret
402b2e:	55                   	push   %ebp
402b2f:	8b ec                	mov    %esp,%ebp
402b31:	51                   	push   %ecx
402b32:	51                   	push   %ecx
402b33:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
402b37:	8d 45 fc             	lea    -0x4(%ebp),%eax
402b3a:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
402b3e:	56                   	push   %esi
402b3f:	8b 75 08             	mov    0x8(%ebp),%esi
402b42:	50                   	push   %eax
402b43:	ff 36                	push   (%esi)
402b45:	e8 13 fc ff ff       	call   0x40275d
402b4a:	8b d0                	mov    %eax,%edx
402b4c:	85 d2                	test   %edx,%edx
402b4e:	78 34                	js     0x402b84
402b50:	8d 45 f8             	lea    -0x8(%ebp),%eax
402b53:	50                   	push   %eax
402b54:	ff 75 fc             	push   -0x4(%ebp)
402b57:	ff 36                	push   (%esi)
402b59:	e8 f9 f0 ff ff       	call   0x401c57
402b5e:	8b d0                	mov    %eax,%edx
402b60:	85 d2                	test   %edx,%edx
402b62:	78 20                	js     0x402b84
402b64:	8b 0e                	mov    (%esi),%ecx
402b66:	8b 45 f8             	mov    -0x8(%ebp),%eax
402b69:	57                   	push   %edi
402b6a:	6a 5c                	push   $0x5c
402b6c:	5f                   	pop    %edi
402b6d:	66 3b 7c 41 fe       	cmp    -0x2(%ecx,%eax,2),%di
402b72:	5f                   	pop    %edi
402b73:	74 0f                	je     0x402b84
402b75:	6a 01                	push   $0x1
402b77:	68 90 b7 44 00       	push   $0x44b790
402b7c:	56                   	push   %esi
402b7d:	e8 70 f3 ff ff       	call   0x401ef2
402b82:	8b d0                	mov    %eax,%edx
402b84:	8b c2                	mov    %edx,%eax
402b86:	5e                   	pop    %esi
402b87:	8b e5                	mov    %ebp,%esp
402b89:	5d                   	pop    %ebp