Function at 0x496acd
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 0x496af5
mov dword [esp + 0x54], 0xfffffbcc
jmp 0x496b04
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 0x496b19
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 0x496b3f
mov dword [esp + 0x40], ecx
cmp dword [esp + 0x58], edx
ja 0x496b43
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 0x49716d
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, 0x6f85e0
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 0x496c81
jb 0x496c78
cmp esi, ecx
jae 0x496c81
xor ecx, ecx
mov edi, ebx
inc ecx
mov eax, ecx
jmp 0x496c95
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 0x496cc7
jb 0x496cc1
cmp dword [esp + 0x58], ebp
jae 0x496cc7
mov edi, ecx
mov ebp, ebx
jmp 0x496cd8
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 0x496cf8
jb 0x496cf2
cmp eax, esi
jae 0x496cf8
mov eax, ecx
mov edx, ebx
jmp 0x496d09
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.00629ef0
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 0x496dd9
mov ebp, dword [esp + 0x44]
mov edi, ebp
sub edi, dword [esp + 0x48]
sbb eax, dword [esp + 0x4c]
cmp eax, dword [esp + 0x1c]
jb 0x496d6d
ja 0x496d65
cmp edi, ebp
jbe 0x496d6d
mov edi, ecx
mov dword [esp + 0x4c], ebx
jmp 0x496d82
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 0x496da8
ja 0x496da2
cmp edx, esi
jbe 0x496da8
mov edx, ecx
mov edi, ebx
jmp 0x496db9
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 0x496f11
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 0x496dff
jb 0x496df5
cmp esi, edx
jae 0x496dff
mov dword [esp + 0x44], ecx
mov dword [esp + 0x28], ebx
jmp 0x496e18
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 0x496e4a
jb 0x496e40
cmp edx, edi
jae 0x496e4a
mov dword [esp + 0x44], ecx
mov dword [esp + 0x28], ebx
jmp 0x496e63
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 0x496ea5
ja 0x496e9d
cmp dword [esp + 0x60], esi
jbe 0x496ea5
mov esi, ecx
mov dword [esp + 0x4c], ebx
jmp 0x496eba
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 0x496ede
ja 0x496ed6
cmp eax, edx
jbe 0x496ede
mov eax, ecx
mov dword [esp + 0x50], ebx
jmp 0x496ef3
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.00629ef0
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.00629ef0
or dword [esp + 0x14], eax
or ebp, edx
cmp dword [esp + 0x38], 0x15
mov dword [esp + 0x2c], ebp
ja 0x497004
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 0x496fb4
push dword [esp + 0x34]
push ebp
call fcn.00495ba2
cmp eax, dword [esp + 0x40]
sbb al, al
inc al
jmp 0x4975cc
mov eax, dword [esp + 0x34]
cmp byte [esp + 0x13], bl
je 0x496fe7
sub ebp, dword [esp + 0x40]
sbb eax, ebx
add ebp, 0xffffffff
adc eax, 0xffffffff
push eax
push ebp
call fcn.00495ba2
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 0x497008
add ebp, 2
adc eax, ebx
push eax
push ebp
call fcn.00495ba2
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 0x4976c9
test al, al
jne 0x4976c9
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 0x4975df
ja 0x4970e2
cmp dword [esp + 0x5c], esi
jbe 0x4975df
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 0x4975ef
xor ecx, ecx
mov eax, ebx
neg eax
mov ebp, 0x6f9820
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 0x497291
jb 0x497288
cmp esi, ecx
jae 0x497291
xor ecx, ecx
mov edi, ebx
inc ecx
mov eax, ecx
jmp 0x4972a5
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 0x4972d7
jb 0x4972d1
cmp dword [esp + 0x60], edi
jae 0x4972d7
mov edi, ecx
mov ebp, ebx
jmp 0x4972e8
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 0x497308
jb 0x497302
cmp eax, esi
jae 0x497308
mov eax, ecx
mov edx, ebx
jmp 0x497319
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.00629ef0
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 0x4973ff
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 0x497385
ja 0x49737b
cmp dword [esp + 0x60], edx
jbe 0x497385
mov dword [esp + 0x50], ecx
mov dword [esp + 0x4c], ebx
jmp 0x49739e
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 0x4973c8
ja 0x4973c0
cmp edx, esi
jbe 0x4973c8
mov edx, ecx
mov dword [esp + 0x50], ebx
jmp 0x4973dd
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 0x497543
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 0x497427
jb 0x49741f
cmp esi, eax
jae 0x497427
mov edi, ecx
mov dword [esp + 0x50], ebx
jmp 0x49743c
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 0x49746c
jb 0x497462
cmp edx, dword [esp + 0x28]
jae 0x49746c
mov dword [esp + 0x50], ecx
mov dword [esp + 0x28], ebx
jmp 0x497485
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 0x4974d5
ja 0x4974cd
cmp dword [esp + 0x60], esi
jbe 0x4974d5
mov esi, ecx
mov dword [esp + 0x58], ebx
jmp 0x4974ea
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 0x49750e
ja 0x497506
cmp eax, edx
jbe 0x49750e
mov edx, ecx
mov dword [esp + 0x58], ebx
jmp 0x497523
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.00629ef0
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.00629ef0
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 0x4975b3
mov al, cl
mov byte [esp + 0x11], al
cmp byte [esp + 0x13], bl
je 0x4975a0
mov cl, byte [esp + 0x40]
mov byte [esp + 0x10], cl
jmp 0x497008
add edi, 0xffffffff
mov cl, bl
mov dword [esp + 0x24], edi
adc dword [esp + 0x20], 0xffffffff
jmp 0x497008
cmp eax, 0x3f
jae 0x497004
push dword [esp + 0x34]
lea ecx, [eax - 1]
push dword [esp + 0x60]
call fcn.00495c55
pop ecx
pop ecx
mov byte [esp + 0x11], al
mov dword [esp + 0x18], ebx
mov byte [esp + 0x12], bl
jmp 0x497018
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.00495afa
push esi
push dword [esp + 0x34]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], edx
call fcn.00495afa
mov ecx, edx
mov dword [esp + 0x64], eax
add esp, 0x10
mov dword [esp + 0x50], ecx
cmp dword [esp + 0x40], ecx
jb 0x497695
ja 0x497626
cmp dword [esp + 0x3c], eax
jbe 0x497695
push ebp
push dword [esp + 0x18]
call fcn.00495afa
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.00495afa
push esi
push dword [esp + 0x68]
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], edx
call fcn.00495afa
mov ecx, edx
mov dword [esp + 0x6c], eax
add esp, 0x18
mov dword [esp + 0x50], ecx
cmp dword [esp + 0x40], ecx
ja 0x497626
jb 0x497691
cmp dword [esp + 0x3c], eax
ja 0x497626
mov dword [esp + 0x18], edi
mov eax, dword [esp + 0x14]
cmp eax, dword [esp + 0x28]
jne 0x4976a3
cmp ebp, esi
je 0x4976bd
cmp byte [esp + 0x13], 0
jne 0x4976bd
xorps xmm0, xmm0
movlpd qword [esp + 0x70], xmm0
mov ebx, dword [esp + 0x74]
mov edx, dword [esp + 0x70]
jmp 0x4976c0
xor edx, edx
inc edx
add edx, eax
adc ebx, ebp
jmp 0x49788f
push dword [esp + 0x20]
push dword [esp + 0x28]
call fcn.00495afa
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.00495afa
mov ecx, edx
mov dword [esp + 0x64], eax
add esp, 0x10
mov dword [esp + 0x50], edx
cmp edi, ecx
jb 0x4977af
ja 0x497710
cmp ebx, eax
jbe 0x4977af
mov ebx, dword [esp + 0x14]
mov edi, dword [esp + 0x2c]
push edi
push ebx
call fcn.00495afa
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.00495afa
push esi
push ebp
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], edx
call fcn.00495afa
mov ecx, edx
mov dword [esp + 0x6c], eax
add esp, 0x18
mov dword [esp + 0x50], ecx
cmp dword [esp + 0x4c], ecx
ja 0x497718
jb 0x4977b7
cmp dword [esp + 0x48], eax
ja 0x497718
jmp 0x4977b7
mov edi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x14]
mov ch, byte [esp + 0x10]
test ch, ch
je 0x49782d
push esi
push ebp
call fcn.00495afa
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 0x497833
push edi
push ebx
call fcn.00495afa
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.00495afa
mov dword [esp + 0x6c], eax
mov ecx, ebp
imul eax, eax, 0xa
add esp, 0x10
mov dword [esp + 0x58], edx
sub ecx, eax
je 0x4977d9
mov dword [esp + 0x14], ebx
jmp 0x497837
mov esi, dword [esp + 0x1c]
jmp 0x49783b
mov esi, dword [esp + 0x1c]
mov ch, byte [esp + 0x10]
mov cl, byte [esp + 0x12]
xor edx, edx
cmp byte [esp + 0x11], dl
je 0x49785b
cmp cl, 5
jne 0x49785b
mov eax, ebx
inc edx
and eax, edx
xor ebx, ebx
or eax, ebx
jne 0x49785e
dec cl
jmp 0x49785e
xor ebx, ebx
inc edx
mov eax, dword [esp + 0x14]
cmp eax, ebp
jne 0x497875
cmp edi, esi
jne 0x497875
cmp byte [esp + 0x13], 0
je 0x49788b
test ch, ch
je 0x49788b
cmp cl, 5
jae 0x49788b
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