Function at 0x4946de
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x68
push ebx
push ebp
mov ebp, dword [esp + 0x78]
mov eax, ecx
mov dword [esp + 0x50], eax
push esi
mov esi, ebp
push edi
mov edi, dword [esp + 0x84]
test eax, eax
jne 0x494706
mov dword [esp + 0x54], 0xfffffbcc
jmp 0x494715
add eax, 0xfffffbcb
or edi, 0x100000
mov dword [esp + 0x54], eax
xor edx, edx
mov eax, esi
inc edx
xor ecx, ecx
and eax, edx
mov byte [esp + 0x13], dl
or eax, ecx
je 0x49472a
mov byte [esp + 0x13], cl
mov eax, esi
mov ebx, edi
shld ebx, eax, 2
shl eax, 2
or ebp, dword [esp + 0x84]
mov dword [esp + 0x34], ebx
mov dword [esp + 0x5c], eax
jne 0x494750
mov dword [esp + 0x40], ecx
cmp dword [esp + 0x58], edx
ja 0x494754
mov dword [esp + 0x40], edx
mov ebx, dword [esp + 0x54]
shld edi, esi, 1
mov byte [esp + 0x10], cl
add esi, esi
mov byte [esp + 0x11], cl
mov dword [esp + 0x28], edi
mov dword [esp + 0x30], esi
test ebx, ebx
js 0x494d7e
xor eax, eax
imul ecx, ebx, 0x13441
push 0
shr ecx, 0x12
cmp ebx, 3
setg al
sub ecx, eax
imul eax, ecx, 0x12934f
mov ebp, ecx
shl ebp, 4
add ebp, 0x6e1500
mov dword [esp + 0x3c], ecx
shr eax, 0x13
sub eax, ebx
add eax, ecx
mov ecx, dword [ebp + 4]
mov dword [esp + 0x30], eax
mov eax, dword [ebp]
mov dword [esp + 0x4c], eax
mul esi
mov dword [esp + 0x50], ecx
mov ebx, eax
mov ecx, edx
mov eax, dword [ebp]
mul edi
mov esi, eax
mov edi, edx
mov eax, dword [ebp + 4]
add esi, ecx
adc edi, 0
mul dword [esp + 0x34]
add eax, esi
mov ecx, edx
mov dword [esp + 0x20], eax
mov eax, dword [ebp + 4]
pop esi
adc ecx, esi
mul dword [esp + 0x28]
push 0
mov dword [esp + 0x28], eax
mov eax, edx
mov edx, dword [esp + 0x28]
add edx, ecx
adc eax, esi
add edx, edi
mov dword [esp + 0x28], edx
adc eax, esi
or dword [esp + 0x20], esi
mov esi, dword [ebp + 8]
mov dword [esp + 0x5c], eax
xor eax, eax
or eax, ebx
mov dword [esp + 0x54], esi
mov dword [esp + 0x48], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x40], eax
mov eax, esi
mul dword [esp + 0x34]
pop ebp
mov ebx, eax
mov ecx, edx
mov eax, esi
mul dword [esp + 0x28]
mov esi, eax
mov edi, edx
mov eax, dword [esp + 0x3c]
add esi, ecx
adc edi, ebp
mul dword [esp + 0x30]
add eax, esi
mov ecx, edx
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x3c]
adc ecx, ebp
mul dword [esp + 0x28]
add eax, ecx
adc edx, ebp
add eax, edi
mov dword [esp + 0x18], eax
adc edx, ebp
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x14]
xor esi, esi
mov ecx, dword [esp + 0x24]
or esi, ebx
xor ebx, ebx
or edx, ebx
add esi, ecx
mov dword [esp + 0x60], esi
adc edx, dword [esp + 0x58]
mov dword [esp + 0x14], edx
cmp edx, dword [esp + 0x58]
ja 0x494892
jb 0x494889
cmp esi, ecx
jae 0x494892
xor ecx, ecx
mov edi, ebx
inc ecx
mov eax, ecx
jmp 0x4948a6
xorps xmm0, xmm0
xor ecx, ecx
movlpd qword [esp + 0x70], xmm0
inc ecx
mov edi, dword [esp + 0x74]
mov eax, dword [esp + 0x70]
add dword [esp + 0x18], eax
mov eax, dword [esp + 0x48]
adc dword [esp + 0x30], edi
mov ebp, dword [esp + 0x44]
add eax, ebp
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x4c]
adc eax, dword [esp + 0x1c]
cmp eax, dword [esp + 0x1c]
ja 0x4948d8
jb 0x4948d2
cmp dword [esp + 0x58], ebp
jae 0x4948d8
mov edi, ecx
mov ebp, ebx
jmp 0x4948e9
xorps xmm0, xmm0
movlpd qword [esp + 0x70], xmm0
mov ebp, dword [esp + 0x74]
mov edi, dword [esp + 0x70]
mov eax, dword [esp + 0x50]
add eax, edi
mov edi, dword [esp + 0x3c]
adc edi, ebp
add eax, esi
adc edi, edx
cmp edi, edx
ja 0x494909
jb 0x494903
cmp eax, esi
jae 0x494909
mov eax, ecx
mov edx, ebx
jmp 0x49491a
xorps xmm0, xmm0
movlpd qword [esp + 0x70], xmm0
mov edx, dword [esp + 0x74]
mov eax, dword [esp + 0x70]
mov ebp, dword [esp + 0x2c]
push 7
pop ecx
sub ecx, ebp
mov dword [esp + 0x54], ecx
lea ecx, [ebp + 0x19]
shr edi, cl
xor ebp, ebp
add eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x54]
adc edx, dword [esp + 0x30]
call fcn.006159e0
xor ecx, ecx
or edi, eax
mov eax, dword [esp + 0x1c]
or ebp, edx
inc ecx
mov dword [esp + 0x24], edi
mov dword [esp + 0x20], ebp
cmp dword [esp + 0x40], ecx
jne 0x4949ea
mov ebp, dword [esp + 0x44]
mov edi, ebp
sub edi, dword [esp + 0x48]
sbb eax, dword [esp + 0x4c]
cmp eax, dword [esp + 0x1c]
jb 0x49497e
ja 0x494976
cmp edi, ebp
jbe 0x49497e
mov edi, ecx
mov dword [esp + 0x4c], ebx
jmp 0x494993
xorps xmm0, xmm0
movlpd qword [esp + 0x70], xmm0
mov eax, dword [esp + 0x74]
mov edi, dword [esp + 0x70]
mov dword [esp + 0x4c], eax
mov ebp, dword [esp + 0x14]
mov edx, esi
sub edx, dword [esp + 0x50]
sbb ebp, dword [esp + 0x3c]
sub edx, edi
sbb ebp, dword [esp + 0x4c]
cmp ebp, dword [esp + 0x14]
jb 0x4949b9
ja 0x4949b3
cmp edx, esi
jbe 0x4949b9
mov edx, ecx
mov edi, ebx
jmp 0x4949ca
xorps xmm0, xmm0
movlpd qword [esp + 0x70], xmm0
mov edi, dword [esp + 0x74]
mov edx, dword [esp + 0x70]
mov ecx, dword [esp + 0x2c]
xor esi, esi
mov eax, dword [esp + 0x18]
lea ecx, [ecx + 0x19]
shr ebp, cl
sub eax, edx
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x54]
sbb edx, edi
jmp 0x494b22
mov edx, dword [esp + 0x44]
mov ebp, eax
mov esi, edx
shld ebp, esi, 1
add esi, esi
mov dword [esp + 0x1c], ebp
cmp ebp, eax
ja 0x494a10
jb 0x494a06
cmp esi, edx
jae 0x494a10
mov dword [esp + 0x44], ecx
mov dword [esp + 0x28], ebx
jmp 0x494a29
xorps xmm0, xmm0
movlpd qword [esp + 0x70], xmm0
mov eax, dword [esp + 0x74]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x44], eax
mov edi, dword [esp + 0x60]
mov edx, edi
mov ebp, dword [esp + 0x14]
shld ebp, edx, 1
add edx, edx
add edx, dword [esp + 0x44]
adc ebp, dword [esp + 0x28]
mov dword [esp + 0x58], ebp
cmp ebp, dword [esp + 0x14]
ja 0x494a5b
jb 0x494a51
cmp edx, edi
jae 0x494a5b
mov dword [esp + 0x44], ecx
mov dword [esp + 0x28], ebx
jmp 0x494a74
xorps xmm0, xmm0
movlpd qword [esp + 0x70], xmm0
mov eax, dword [esp + 0x74]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x44], eax
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x30]
shld eax, edi, 1
add edi, edi
add edi, dword [esp + 0x44]
adc eax, dword [esp + 0x28]
mov dword [esp + 0x44], eax
mov eax, esi
sub eax, dword [esp + 0x48]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x1c]
sbb eax, dword [esp + 0x4c]
cmp eax, dword [esp + 0x1c]
jb 0x494ab6
ja 0x494aae
cmp dword [esp + 0x60], esi
jbe 0x494ab6
mov esi, ecx
mov dword [esp + 0x4c], ebx
jmp 0x494acb
xorps xmm0, xmm0
movlpd qword [esp + 0x70], xmm0
mov eax, dword [esp + 0x74]
mov esi, dword [esp + 0x70]
mov dword [esp + 0x4c], eax
mov eax, edx
sub eax, dword [esp + 0x50]
sbb ebp, dword [esp + 0x3c]
sub eax, esi
sbb ebp, dword [esp + 0x4c]
cmp ebp, dword [esp + 0x58]
jb 0x494aef
ja 0x494ae7
cmp eax, edx
jbe 0x494aef
mov eax, ecx
mov dword [esp + 0x50], ebx
jmp 0x494b04
xorps xmm0, xmm0
movlpd qword [esp + 0x70], xmm0
mov eax, dword [esp + 0x74]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x2c]
xor esi, esi
mov edx, dword [esp + 0x44]
add ecx, 0x1a
shr ebp, cl
sub edi, eax
push 6
sbb edx, dword [esp + 0x54]
mov eax, edi
pop ecx
sub ecx, dword [esp + 0x2c]
call fcn.006159e0
mov ecx, dword [esp + 0x2c]
or ebp, eax
mov eax, dword [esp + 0x18]
or esi, edx
mov edx, dword [esp + 0x30]
mov dword [esp + 0x28], ebp
xor ebp, ebp
lea ecx, [ecx + 0x19]
mov dword [esp + 0x1c], esi
shr dword [esp + 0x14], cl
mov ecx, dword [esp + 0x54]
call fcn.006159e0
or dword [esp + 0x14], eax
or ebp, edx
cmp dword [esp + 0x38], 0x15
mov dword [esp + 0x2c], ebp
ja 0x494c15
mov ebp, dword [esp + 0x5c]
mov esi, 0xcccccccd
mov eax, esi
xor edi, edi
mul ebp
mov eax, esi
mov ecx, edx
mul dword [esp + 0x34]
add ecx, eax
mov eax, 0xcccccccc
adc edi, edx
mul ebp
add eax, ecx
mov esi, edx
mov eax, 0xcccccccc
adc esi, ebx
xor ecx, ecx
mul dword [esp + 0x34]
add esi, eax
adc ecx, edx
add esi, edi
adc ecx, ebx
shrd esi, ecx, 2
mov ecx, ebp
imul eax, esi, 5
sub ecx, eax
jne 0x494bc5
push dword [esp + 0x34]
push ebp
call fcn.004937b3
cmp eax, dword [esp + 0x40]
sbb al, al
inc al
jmp 0x4951dd
mov eax, dword [esp + 0x34]
cmp byte [esp + 0x13], bl
je 0x494bf8
sub ebp, dword [esp + 0x40]
sbb eax, ebx
add ebp, 0xffffffff
adc eax, 0xffffffff
push eax
push ebp
call fcn.004937b3
cmp eax, dword [esp + 0x40]
pop ecx
sbb al, al
inc al
mov byte [esp + 0x14], al
mov al, bl
pop ecx
mov cl, byte [esp + 0x10]
jmp 0x494c19
add ebp, 2
adc eax, ebx
push eax
push ebp
call fcn.004937b3
cmp eax, dword [esp + 0x40]
pop ecx
sbb eax, eax
inc eax
sub dword [esp + 0x28], eax
pop ecx
sbb dword [esp + 0x20], ebx
mov al, bl
mov cl, al
mov dword [esp + 0x18], ebx
mov byte [esp + 0x12], bl
test cl, cl
jne 0x4952da
test al, al
jne 0x4952da
mov esi, dword [esp + 0x24]
mov ebp, 0x5c28f5c3
mov byte [esp + 0x13], bl
mov eax, ebp
mov ebx, dword [esp + 0x20]
xor edi, edi
shrd esi, ebx, 2
push 0
mul esi
shr ebx, 2
mov eax, ebp
mov ecx, edx
mul ebx
pop ebp
add ecx, eax
mov eax, 0x28f5c28f
push ebp
adc edi, edx
mul esi
add eax, ecx
mov esi, edx
mov eax, 0x28f5c28f
adc esi, ebp
xor ecx, ecx
mul ebx
mov ebx, dword [esp + 0x20]
add esi, eax
mov eax, 0x5c28f5c3
adc ecx, edx
add esi, edi
adc ecx, ebp
xor edi, edi
shrd esi, ecx, 2
mov dword [esp + 0x60], esi
mov esi, dword [esp + 0x2c]
shrd esi, ebx, 2
shr ecx, 2
mul esi
mov dword [esp + 0x5c], ecx
mov eax, 0x5c28f5c3
shr ebx, 2
mov ecx, edx
mul ebx
add ecx, eax
mov eax, 0x28f5c28f
adc edi, edx
mul esi
add eax, ecx
mov esi, edx
mov eax, 0x28f5c28f
adc esi, ebp
xor ecx, ecx
mul ebx
pop ebx
add esi, eax
adc ecx, edx
add esi, edi
adc ecx, ebx
shrd esi, ecx, 2
shr ecx, 2
mov dword [esp + 0x70], esi
mov dword [esp + 0x68], ecx
cmp dword [esp + 0x58], ecx
jb 0x4951f0
ja 0x494cf3
cmp dword [esp + 0x5c], esi
jbe 0x4951f0
mov esi, dword [esp + 0x14]
mov ebp, 0x5c28f5c3
mov eax, dword [esp + 0x2c]
xor edi, edi
shrd esi, eax, 2
push 0
shr eax, 2
mov ebx, eax
mov eax, ebp
mul esi
mov eax, ebp
mov ecx, edx
mul ebx
add ecx, eax
mov eax, 0x28f5c28f
adc edi, edx
mul esi
add eax, ecx
mov esi, edx
mov ecx, dword [esp + 0x18]
mov eax, 0x28f5c28f
adc esi, 0
xor ebp, ebp
mul ebx
pop ebx
add esi, eax
push 2
adc ebp, edx
add esi, edi
pop edi
adc ebp, ebx
mov dword [esp + 0x18], edi
shrd esi, ebp, 2
imul eax, esi, 0x64
shr ebp, 2
mov dword [esp + 0x14], esi
mov esi, dword [esp + 0x68]
sub ecx, eax
cmp ecx, 0x32
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x70]
sbb al, al
inc al
mov dword [esp + 0x28], ecx
mov byte [esp + 0x13], al
mov eax, dword [esp + 0x5c]
jmp 0x495200
xor ecx, ecx
mov eax, ebx
neg eax
mov ebp, 0x6e2740
cmp eax, edx
push 0
setg cl
imul edx, ebx, 0xfff4d105
shr edx, 0x14
sub edx, ecx
add ebx, edx
mov dword [esp + 0x74], edx
imul eax, ebx, 0xffed6cb1
mov dword [esp + 0x3c], ebx
shr eax, 0x13
sub edx, eax
mov eax, ebx
shl eax, 4
sub ebp, eax
mov dword [esp + 0x30], edx
mov eax, dword [ebp]
mov ecx, dword [ebp + 4]
mov dword [esp + 0x50], eax
mul esi
mov dword [esp + 0x4c], ecx
mov ebx, eax
mov ecx, edx
mov eax, dword [ebp]
mul edi
mov esi, eax
mov edi, edx
mov eax, dword [ebp + 4]
add esi, ecx
adc edi, 0
mul dword [esp + 0x34]
add eax, esi
mov ecx, edx
mov dword [esp + 0x40], eax
mov eax, dword [ebp + 4]
pop esi
adc ecx, esi
mul dword [esp + 0x28]
push 0
mov dword [esp + 0x58], eax
mov eax, edx
mov edx, dword [esp + 0x58]
add edx, ecx
adc eax, esi
add edx, edi
mov dword [esp + 0x58], edx
adc eax, esi
or dword [esp + 0x40], esi
mov esi, dword [ebp + 8]
mov dword [esp + 0x64], eax
xor eax, eax
or eax, ebx
mov dword [esp + 0x48], esi
mov dword [esp + 0x54], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x20], eax
mov eax, esi
mul dword [esp + 0x34]
pop ebp
mov ebx, eax
mov ecx, edx
mov eax, esi
mul dword [esp + 0x28]
mov esi, eax
mov edi, edx
mov eax, dword [esp + 0x1c]
add esi, ecx
adc edi, ebp
mul dword [esp + 0x30]
add eax, esi
mov ecx, edx
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x1c]
adc ecx, ebp
mul dword [esp + 0x28]
add eax, ecx
adc edx, ebp
mov ecx, dword [esp + 0x54]
add eax, edi
mov dword [esp + 0x30], eax
adc edx, ebp
xor esi, esi
mov dword [esp + 0x18], edx
or esi, ebx
mov edx, dword [esp + 0x14]
xor ebx, ebx
or edx, ebx
add esi, ecx
mov dword [esp + 0x28], esi
adc edx, dword [esp + 0x60]
mov dword [esp + 0x14], edx
cmp edx, dword [esp + 0x60]
ja 0x494ea2
jb 0x494e99
cmp esi, ecx
jae 0x494ea2
xor ecx, ecx
mov edi, ebx
inc ecx
mov eax, ecx
jmp 0x494eb6
xorps xmm0, xmm0
xor ecx, ecx
movlpd qword [esp + 0x68], xmm0
inc ecx
mov edi, dword [esp + 0x6c]
mov eax, dword [esp + 0x68]
add dword [esp + 0x30], eax
mov eax, dword [esp + 0x4c]
adc dword [esp + 0x18], edi
mov edi, dword [esp + 0x50]
add eax, edi
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x48]
adc eax, dword [esp + 0x3c]
cmp eax, dword [esp + 0x3c]
ja 0x494ee8
jb 0x494ee2
cmp dword [esp + 0x60], edi
jae 0x494ee8
mov edi, ecx
mov ebp, ebx
jmp 0x494ef9
xorps xmm0, xmm0
movlpd qword [esp + 0x68], xmm0
mov ebp, dword [esp + 0x6c]
mov edi, dword [esp + 0x68]
mov eax, dword [esp + 0x44]
add eax, edi
mov edi, dword [esp + 0x1c]
adc edi, ebp
add eax, esi
adc edi, edx
cmp edi, edx
ja 0x494f19
jb 0x494f13
cmp eax, esi
jae 0x494f19
mov eax, ecx
mov edx, ebx
jmp 0x494f2a
xorps xmm0, xmm0
movlpd qword [esp + 0x68], xmm0
mov edx, dword [esp + 0x6c]
mov eax, dword [esp + 0x68]
mov ebp, dword [esp + 0x2c]
push 9
pop ecx
sub ecx, ebp
mov dword [esp + 0x54], ecx
lea ecx, [ebp + 0x17]
shr edi, cl
xor ebp, ebp
add eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x54]
adc edx, dword [esp + 0x18]
call fcn.006159e0
xor ecx, ecx
or edi, eax
or ebp, edx
mov dword [esp + 0x24], edi
inc ecx
mov dword [esp + 0x20], ebp
cmp dword [esp + 0x40], ecx
jne 0x495010
mov edx, dword [esp + 0x50]
mov eax, edx
sub eax, dword [esp + 0x4c]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x3c]
sbb eax, dword [esp + 0x48]
cmp eax, dword [esp + 0x3c]
jb 0x494f96
ja 0x494f8c
cmp dword [esp + 0x60], edx
jbe 0x494f96
mov dword [esp + 0x50], ecx
mov dword [esp + 0x4c], ebx
jmp 0x494faf
xorps xmm0, xmm0
movlpd qword [esp + 0x68], xmm0
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x50], eax
mov ebp, dword [esp + 0x14]
mov edx, esi
sub edx, dword [esp + 0x44]
sbb ebp, dword [esp + 0x1c]
sub edx, dword [esp + 0x50]
sbb ebp, dword [esp + 0x4c]
cmp ebp, dword [esp + 0x14]
jb 0x494fd9
ja 0x494fd1
cmp edx, esi
jbe 0x494fd9
mov edx, ecx
mov dword [esp + 0x50], ebx
jmp 0x494fee
xorps xmm0, xmm0
movlpd qword [esp + 0x68], xmm0
mov eax, dword [esp + 0x6c]
mov edx, dword [esp + 0x68]
mov dword [esp + 0x50], eax
mov ecx, dword [esp + 0x2c]
xor esi, esi
mov eax, dword [esp + 0x30]
lea ecx, [ecx + 0x17]
shr ebp, cl
sub eax, edx
mov edx, dword [esp + 0x18]
sbb edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x54]
jmp 0x495154
mov eax, dword [esp + 0x50]
mov esi, eax
mov ebp, dword [esp + 0x3c]
shld ebp, esi, 1
add esi, esi
mov dword [esp + 0x58], ebp
cmp ebp, dword [esp + 0x3c]
ja 0x495038
jb 0x495030
cmp esi, eax
jae 0x495038
mov edi, ecx
mov dword [esp + 0x50], ebx
jmp 0x49504d
xorps xmm0, xmm0
movlpd qword [esp + 0x68], xmm0
mov eax, dword [esp + 0x6c]
mov edi, dword [esp + 0x68]
mov dword [esp + 0x50], eax
mov edx, dword [esp + 0x28]
mov ebp, dword [esp + 0x14]
shld ebp, edx, 1
add edx, edx
add edx, edi
adc ebp, dword [esp + 0x50]
mov dword [esp + 0x68], ebp
cmp ebp, dword [esp + 0x14]
ja 0x49507d
jb 0x495073
cmp edx, dword [esp + 0x28]
jae 0x49507d
mov dword [esp + 0x50], ecx
mov dword [esp + 0x28], ebx
jmp 0x495096
xorps xmm0, xmm0
movlpd qword [esp + 0x60], xmm0
mov eax, dword [esp + 0x64]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x50], eax
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x30]
mov dword [esp + 0x3c], edi
shld dword [esp + 0x3c], eax, 1
mov edi, dword [esp + 0x24]
add eax, eax
add eax, dword [esp + 0x50]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x28]
adc dword [esp + 0x3c], eax
mov eax, esi
sub eax, dword [esp + 0x4c]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x58]
sbb eax, dword [esp + 0x48]
cmp eax, dword [esp + 0x58]
jb 0x4950e6
ja 0x4950de
cmp dword [esp + 0x60], esi
jbe 0x4950e6
mov esi, ecx
mov dword [esp + 0x58], ebx
jmp 0x4950fb
xorps xmm0, xmm0
movlpd qword [esp + 0x60], xmm0
mov eax, dword [esp + 0x64]
mov esi, dword [esp + 0x60]
mov dword [esp + 0x58], eax
mov eax, edx
sub eax, dword [esp + 0x44]
sbb ebp, dword [esp + 0x1c]
sub eax, esi
sbb ebp, dword [esp + 0x58]
cmp ebp, dword [esp + 0x68]
jb 0x49511f
ja 0x495117
cmp eax, edx
jbe 0x49511f
mov edx, ecx
mov dword [esp + 0x58], ebx
jmp 0x495134
xorps xmm0, xmm0
movlpd qword [esp + 0x68], xmm0
mov eax, dword [esp + 0x6c]
mov edx, dword [esp + 0x68]
mov dword [esp + 0x58], eax
mov ecx, dword [esp + 0x2c]
xor esi, esi
mov eax, dword [esp + 0x50]
push 8
lea ecx, [ecx + 0x18]
shr ebp, cl
sub eax, edx
mov edx, dword [esp + 0x40]
sbb edx, dword [esp + 0x5c]
pop ecx
sub ecx, dword [esp + 0x2c]
call fcn.006159e0
mov ecx, dword [esp + 0x2c]
or esi, edx
mov edx, dword [esp + 0x18]
or ebp, eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x1c], esi
xor esi, esi
lea ecx, [ecx + 0x17]
mov dword [esp + 0x28], ebp
shr dword [esp + 0x14], cl
mov ecx, dword [esp + 0x54]
call fcn.006159e0
or dword [esp + 0x14], eax
xor ecx, ecx
mov eax, dword [esp + 0x70]
or esi, edx
inc ecx
mov dword [esp + 0x2c], esi
cmp eax, ecx
ja 0x4951c4
mov al, cl
mov byte [esp + 0x11], al
cmp byte [esp + 0x13], bl
je 0x4951b1
mov cl, byte [esp + 0x40]
mov byte [esp + 0x10], cl
jmp 0x494c19
add edi, 0xffffffff
mov cl, bl
mov dword [esp + 0x24], edi
adc dword [esp + 0x20], 0xffffffff
jmp 0x494c19
cmp eax, 0x3f
jae 0x494c15
push dword [esp + 0x34]
lea ecx, [eax - 1]
push dword [esp + 0x60]
call fcn.00493866
pop ecx
pop ecx
mov byte [esp + 0x11], al
mov dword [esp + 0x18], ebx
mov byte [esp + 0x12], bl
jmp 0x494c29
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x24]
mov ebp, dword [esp + 0x2c]
push dword [esp + 0x20]
push eax
call fcn.0049370b
push esi
push dword [esp + 0x34]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], edx
call fcn.0049370b
mov ecx, edx
mov dword [esp + 0x64], eax
add esp, 0x10
mov dword [esp + 0x50], ecx
cmp dword [esp + 0x40], ecx
jb 0x4952a6
ja 0x495237
cmp dword [esp + 0x3c], eax
jbe 0x4952a6
push ebp
push dword [esp + 0x18]
call fcn.0049370b
push dword [esp + 0x48]
mov esi, dword [esp + 0x5c]
mov ebp, edx
mov edx, dword [esp + 0x20]
push dword [esp + 0x48]
imul ecx, eax, 0xa
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x38], eax
sub edx, ecx
cmp edx, 5
sbb cl, cl
inc cl
inc edi
mov byte [esp + 0x23], cl
call fcn.0049370b
push esi
push dword [esp + 0x68]
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], edx
call fcn.0049370b
mov ecx, edx
mov dword [esp + 0x6c], eax
add esp, 0x18
mov dword [esp + 0x50], ecx
cmp dword [esp + 0x40], ecx
ja 0x495237
jb 0x4952a2
cmp dword [esp + 0x3c], eax
ja 0x495237
mov dword [esp + 0x18], edi
mov eax, dword [esp + 0x14]
cmp eax, dword [esp + 0x28]
jne 0x4952b4
cmp ebp, esi
je 0x4952ce
cmp byte [esp + 0x13], 0
jne 0x4952ce
xorps xmm0, xmm0
movlpd qword [esp + 0x70], xmm0
mov ebx, dword [esp + 0x74]
mov edx, dword [esp + 0x70]
jmp 0x4952d1
xor edx, edx
inc edx
add edx, eax
adc ebx, ebp
jmp 0x4954a0
push dword [esp + 0x20]
push dword [esp + 0x28]
call fcn.0049370b
mov esi, dword [esp + 0x24]
mov ebx, eax
mov ebp, dword [esp + 0x30]
mov edi, edx
push esi
push ebp
mov dword [esp + 0x58], ebx
mov dword [esp + 0x5c], edi
call fcn.0049370b
mov ecx, edx
mov dword [esp + 0x64], eax
add esp, 0x10
mov dword [esp + 0x50], edx
cmp edi, ecx
jb 0x4953c0
ja 0x495321
cmp ebx, eax
jbe 0x4953c0
mov ebx, dword [esp + 0x14]
mov edi, dword [esp + 0x2c]
push edi
push ebx
call fcn.0049370b
movzx ecx, byte [esp + 0x18]
mov edi, edx
imul edx, dword [esp + 0x5c], 0xa
mov ebx, eax
push dword [esp + 0x54]
mov esi, dword [esp + 0x5c]
xor eax, eax
push dword [esp + 0x54]
mov dword [esp + 0x2c], esi
cmp ebp, edx
mov ebp, dword [esp + 0x64]
cmove eax, ecx
movzx ecx, byte [esp + 0x21]
xor edx, edx
mov byte [esp + 0x20], al
cmp byte [esp + 0x22], dl
movzx eax, bl
cmove edx, ecx
mov cl, byte [esp + 0x24]
imul eax, eax, 0xa
mov byte [esp + 0x21], dl
mov dword [esp + 0x24], ebx
sub cl, al
inc dword [esp + 0x28]
mov byte [esp + 0x22], cl
call fcn.0049370b
push esi
push ebp
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], edx
call fcn.0049370b
mov ecx, edx
mov dword [esp + 0x6c], eax
add esp, 0x18
mov dword [esp + 0x50], ecx
cmp dword [esp + 0x4c], ecx
ja 0x495329
jb 0x4953c8
cmp dword [esp + 0x48], eax
ja 0x495329
jmp 0x4953c8
mov edi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x14]
mov ch, byte [esp + 0x10]
test ch, ch
je 0x49543e
push esi
push ebp
call fcn.0049370b
pop ecx
pop ecx
imul ecx, eax, 0xa
mov esi, ebp
mov dword [esp + 0x5c], eax
mov dword [esp + 0x58], edx
sub esi, ecx
jne 0x495444
push edi
push ebx
call fcn.0049370b
cmp byte [esp + 0x1a], 0
mov edi, edx
sete cl
and byte [esp + 0x19], cl
movzx ecx, al
imul ecx, ecx, 0xa
sub bl, cl
mov ecx, dword [esp + 0x60]
inc dword [esp + 0x20]
mov esi, ecx
mov byte [esp + 0x1a], bl
mov ebx, eax
mov eax, dword [esp + 0x64]
mov ebp, eax
push ecx
push eax
call fcn.0049370b
mov dword [esp + 0x6c], eax
mov ecx, ebp
imul eax, eax, 0xa
add esp, 0x10
mov dword [esp + 0x58], edx
sub ecx, eax
je 0x4953ea
mov dword [esp + 0x14], ebx
jmp 0x495448
mov esi, dword [esp + 0x1c]
jmp 0x49544c
mov esi, dword [esp + 0x1c]
mov ch, byte [esp + 0x10]
mov cl, byte [esp + 0x12]
xor edx, edx
cmp byte [esp + 0x11], dl
je 0x49546c
cmp cl, 5
jne 0x49546c
mov eax, ebx
inc edx
and eax, edx
xor ebx, ebx
or eax, ebx
jne 0x49546f
dec cl
jmp 0x49546f
xor ebx, ebx
inc edx
mov eax, dword [esp + 0x14]
cmp eax, ebp
jne 0x495486
cmp edi, esi
jne 0x495486
cmp byte [esp + 0x13], 0
je 0x49549c
test ch, ch
je 0x49549c
cmp cl, 5
jae 0x49549c
xorps xmm0, xmm0
movlpd qword [esp + 0x70], xmm0
mov ebx, dword [esp + 0x74]
mov edx, dword [esp + 0x70]
add edx, eax
adc ebx, edi
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x38]
add ecx, dword [esp + 0x18]
pop edi
pop esi
pop ebp
mov dword [eax + 4], ebx
mov dword [eax + 8], ecx
mov dword [eax], edx
pop ebx
add esp, 0x68
ret