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

Disassembly:
mov eax, dword [esp + 0x10]
sub esp, 0x64
push ebx
push ebp
mov ebp, dword [esp + 0x74]
push esi
mov esi, ebp
push edi
mov edi, dword [esp + 0x80]
test eax, eax
jne 0x100137c1
mov dword [esp + 0x54], 0xfffffbcc
jmp 0x100137d0
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 0x100137e5
mov byte [esp + 0x13], cl
mov eax, esi
mov ebx, edi
shld ebx, eax, 2
shl eax, 2
or ebp, dword [esp + 0x80]
mov dword [esp + 0x34], ebx
mov dword [esp + 0x5c], eax
jne 0x1001380e
mov dword [esp + 0x30], ecx
cmp dword [esp + 0x84], edx
ja 0x10013812
mov dword [esp + 0x30], edx
mov ebx, dword [esp + 0x54]
shld edi, esi, 1
mov byte [esp + 0x84], cl
add esi, esi
mov byte [esp + 0x7c], cl
mov dword [esp + 0x18], edi
mov dword [esp + 0x20], esi
test ebx, ebx
js 0x10013e22
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, 0x10090cb0
mov dword [esp + 0x28], ecx
shr eax, 0x13
sub eax, ebx
add eax, ecx
mov ecx, dword [ebp + 4]
mov dword [esp + 0x20], eax
mov eax, dword [ebp]
mov dword [esp + 0x48], 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 + 0x24]
add eax, esi
mov ecx, edx
mov dword [esp + 0x2c], eax
mov eax, dword [ebp + 4]
pop esi
adc ecx, esi
mul dword [esp + 0x18]
push 0
mov dword [esp + 0x3c], eax
mov eax, edx
mov edx, dword [esp + 0x3c]
add edx, ecx
adc eax, esi
add edx, edi
mov dword [esp + 0x3c], edx
adc eax, esi
or dword [esp + 0x2c], esi
mov esi, dword [ebp + 8]
mov dword [esp + 0x64], eax
xor eax, eax
or eax, ebx
mov dword [esp + 0x50], esi
mov dword [esp + 0x40], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x30], eax
mov eax, esi
mul dword [esp + 0x24]
pop ebp
mov ebx, eax
mov ecx, edx
mov eax, esi
mul dword [esp + 0x18]
mov esi, eax
mov edi, edx
mov eax, dword [esp + 0x2c]
add esi, ecx
adc edi, ebp
mul dword [esp + 0x20]
add eax, esi
mov ecx, edx
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x2c]
adc ecx, ebp
mul dword [esp + 0x18]
mov esi, eax
mov eax, edx
add esi, ecx
adc eax, ebp
add esi, edi
adc eax, ebp
mov ecx, dword [esp + 0x14]
xor edi, edi
mov edx, dword [esp + 0x38]
or edi, ebx
xor ebx, ebx
mov dword [esp + 0x18], eax
or ecx, ebx
add edi, edx
mov dword [esp + 0x40], edi
adc ecx, dword [esp + 0x60]
mov dword [esp + 0x14], ecx
cmp ecx, dword [esp + 0x60]
ja 0x10013953
jb 0x1001394a
cmp edi, edx
jae 0x10013953
xor edx, edx
mov ebp, ebx
inc edx
mov eax, edx
jmp 0x10013967
xorps xmm0, xmm0
xor edx, edx
movlpd qword [esp + 0x6c], xmm0
inc edx
mov ebp, dword [esp + 0x70]
mov eax, dword [esp + 0x6c]
add esi, eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x38], esi
adc dword [esp + 0x18], ebp
mov ebp, dword [esp + 0x3c]
add eax, ebp
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x48]
adc eax, dword [esp + 0x28]
cmp eax, dword [esp + 0x28]
ja 0x1001399b
jb 0x10013995
cmp dword [esp + 0x60], ebp
jae 0x1001399b
mov eax, edx
mov esi, ebx
jmp 0x100139ac
xorps xmm0, xmm0
movlpd qword [esp + 0x6c], xmm0
mov esi, dword [esp + 0x70]
mov eax, dword [esp + 0x6c]
add eax, dword [esp + 0x4c]
adc esi, dword [esp + 0x2c]
add eax, edi
adc esi, ecx
cmp esi, ecx
ja 0x100139c6
jb 0x100139c2
cmp eax, edi
jae 0x100139c6
mov eax, ebx
jmp 0x100139d7
xorps xmm0, xmm0
movlpd qword [esp + 0x6c], xmm0
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x6c]
mov ebp, dword [esp + 0x1c]
push 7
pop ecx
sub ecx, ebp
mov dword [esp + 0x50], ecx
lea ecx, [ebp + 0x19]
shr esi, cl
xor ebp, ebp
add edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x50]
adc eax, dword [esp + 0x18]
mov dword [esp + 0x60], eax
mov eax, edx
mov edx, dword [esp + 0x60]
call fcn.1002e810
xor ecx, ecx
or esi, eax
or ebp, edx
mov dword [esp + 0x54], esi
inc ecx
mov dword [esp + 0x20], ebp
cmp dword [esp + 0x30], ecx
jne 0x10013ab9
mov ebp, dword [esp + 0x3c]
mov eax, ebp
sub eax, dword [esp + 0x44]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x28]
sbb eax, dword [esp + 0x48]
cmp eax, dword [esp + 0x28]
jb 0x10013a49
ja 0x10013a43
cmp dword [esp + 0x60], ebp
jbe 0x10013a49
mov eax, ecx
mov ebp, ebx
jmp 0x10013a5a
xorps xmm0, xmm0
movlpd qword [esp + 0x6c], xmm0
mov ebp, dword [esp + 0x70]
mov eax, dword [esp + 0x6c]
mov edx, edi
mov edi, dword [esp + 0x14]
sub edx, eax
sbb edi, ebp
sub edx, dword [esp + 0x4c]
sbb edi, dword [esp + 0x2c]
cmp edi, dword [esp + 0x14]
jb 0x10013a82
ja 0x10013a7a
cmp edx, dword [esp + 0x40]
jbe 0x10013a82
mov edx, ecx
mov dword [esp + 0x54], ebx
jmp 0x10013a97
xorps xmm0, xmm0
movlpd qword [esp + 0x6c], xmm0
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x54], eax
mov ecx, dword [esp + 0x1c]
xor ebp, ebp
mov eax, dword [esp + 0x38]
lea ecx, [ecx + 0x19]
shr edi, cl
sub eax, edx
mov edx, dword [esp + 0x18]
sbb edx, dword [esp + 0x54]
mov ecx, dword [esp + 0x50]
jmp 0x10013bf9
mov edx, dword [esp + 0x3c]
mov edi, edx
mov ebp, dword [esp + 0x28]
shld ebp, edi, 1
add edi, edi
mov dword [esp + 0x60], ebp
cmp ebp, dword [esp + 0x28]
ja 0x10013ae1
jb 0x10013ad9
cmp edi, edx
jae 0x10013ae1
mov esi, ecx
mov dword [esp + 0x3c], ebx
jmp 0x10013af6
xorps xmm0, xmm0
movlpd qword [esp + 0x6c], xmm0
mov eax, dword [esp + 0x70]
mov esi, dword [esp + 0x6c]
mov dword [esp + 0x3c], eax
mov edx, dword [esp + 0x40]
mov ebp, dword [esp + 0x14]
shld ebp, edx, 1
add edx, edx
add edx, esi
adc ebp, dword [esp + 0x3c]
cmp ebp, dword [esp + 0x14]
ja 0x10013b22
jb 0x10013b18
cmp edx, dword [esp + 0x40]
jae 0x10013b22
mov dword [esp + 0x40], ecx
mov dword [esp + 0x3c], ebx
jmp 0x10013b3b
xorps xmm0, xmm0
movlpd qword [esp + 0x6c], xmm0
mov eax, dword [esp + 0x70]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x40], eax
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x38]
mov dword [esp + 0x28], esi
shld dword [esp + 0x28], eax, 1
mov esi, dword [esp + 0x54]
add eax, eax
add eax, dword [esp + 0x40]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x3c]
adc dword [esp + 0x28], eax
mov eax, edi
sub eax, dword [esp + 0x44]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x60]
sbb eax, dword [esp + 0x48]
cmp eax, dword [esp + 0x60]
jb 0x10013b8b
ja 0x10013b83
cmp dword [esp + 0x44], edi
jbe 0x10013b8b
mov edi, ecx
mov dword [esp + 0x60], ebx
jmp 0x10013ba0
xorps xmm0, xmm0
movlpd qword [esp + 0x6c], xmm0
mov eax, dword [esp + 0x70]
mov edi, dword [esp + 0x6c]
mov dword [esp + 0x60], eax
mov eax, edx
sub eax, edi
mov edi, ebp
sbb edi, dword [esp + 0x60]
sub eax, dword [esp + 0x4c]
sbb edi, dword [esp + 0x2c]
cmp edi, ebp
jb 0x10013bc4
ja 0x10013bbc
cmp eax, edx
jbe 0x10013bc4
mov edx, ecx
mov dword [esp + 0x60], ebx
jmp 0x10013bd9
xorps xmm0, xmm0
movlpd qword [esp + 0x6c], xmm0
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x60], eax
mov ecx, dword [esp + 0x1c]
xor ebp, ebp
mov eax, dword [esp + 0x40]
push 6
lea ecx, [ecx + 0x1a]
shr edi, cl
sub eax, edx
mov edx, dword [esp + 0x2c]
sbb edx, dword [esp + 0x64]
pop ecx
sub ecx, dword [esp + 0x1c]
call fcn.1002e810
mov ecx, dword [esp + 0x1c]
or ebp, edx
xor edx, edx
or edi, eax
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x18]
lea ecx, [ecx + 0x19]
shr dword [esp + 0x14], cl
mov ecx, dword [esp + 0x50]
call fcn.1002e810
or dword [esp + 0x14], eax
xor eax, eax
or eax, edx
cmp dword [esp + 0x24], 0x15
mov dword [esp + 0x18], eax
ja 0x10013cc0
push dword [esp + 0x34]
push dword [esp + 0x60]
call fcn.10014d66
mov edx, dword [esp + 0x64]
pop ecx
imul eax, eax, 5
pop ecx
mov ecx, edx
sub ecx, eax
jne 0x10013c6c
push dword [esp + 0x34]
push edx
call fcn.10015912
cmp eax, dword [esp + 0x2c]
pop ecx
sbb al, al
pop ecx
inc al
jmp 0x10014270
mov eax, dword [esp + 0x34]
cmp byte [esp + 0x13], bl
je 0x10013ca5
sub edx, dword [esp + 0x30]
sbb eax, ebx
add edx, 0xffffffff
adc eax, 0xffffffff
push eax
push edx
call fcn.10015912
cmp eax, dword [esp + 0x2c]
pop ecx
sbb al, al
inc al
mov byte [esp + 0x88], al
mov al, bl
pop ecx
mov cl, byte [esp + 0x84]
jmp 0x10013cc4
add edx, 2
adc eax, ebx
push eax
push edx
call fcn.10015912
cmp eax, dword [esp + 0x2c]
pop ecx
sbb eax, eax
inc eax
sub esi, eax
pop ecx
sbb dword [esp + 0x20], ebx
mov al, bl
mov cl, al
mov dword [esp + 0x1c], ebx
mov byte [esp + 0x12], bl
test cl, cl
jne 0x100142bc
test al, al
jne 0x100142bc
push dword [esp + 0x20]
mov byte [esp + 0x88], bl
push esi
call fcn.10014ccc
push ebp
push edi
mov dword [esp + 0x8c], eax
mov dword [esp + 0x70], edx
call fcn.10014ccc
mov ecx, edx
mov dword [esp + 0x7c], eax
add esp, 0x10
mov dword [esp + 0x64], ecx
cmp dword [esp + 0x60], ecx
jb 0x10013d68
ja 0x10013d1a
cmp dword [esp + 0x7c], eax
jbe 0x10013d68
mov edx, dword [esp + 0x18]
push edx
push dword [esp + 0x18]
call fcn.10014ccc
mov esi, dword [esp + 0x84]
mov edi, dword [esp + 0x74]
mov ebp, dword [esp + 0x6c]
pop ecx
pop ecx
imul ecx, eax, 0x64
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x60]
sub edx, ecx
mov dword [esp + 0x20], eax
cmp edx, 0x32
mov dword [esp + 0x1c], 2
sbb cl, cl
inc cl
mov byte [esp + 0x84], cl
push dword [esp + 0x20]
push esi
call fcn.10014cf7
mov esi, eax
mov dword [esp + 0x84], edx
push ebp
push edi
mov dword [esp + 0x60], esi
call fcn.10014cf7
add esp, 0x10
mov dword [esp + 0x5c], eax
mov dword [esp + 0x54], edx
cmp dword [esp + 0x7c], edx
jb 0x10014281
ja 0x10013da5
cmp esi, eax
jbe 0x10014281
mov esi, dword [esp + 0x18]
push esi
push dword [esp + 0x18]
call fcn.10014cf7
push dword [esp + 0x84]
mov edi, dword [esp + 0x68]
mov esi, edx
mov edx, dword [esp + 0x20]
push dword [esp + 0x5c]
mov ebp, dword [esp + 0x64]
imul ecx, eax, 0xa
mov dword [esp + 0x24], eax
sub edx, ecx
cmp edx, 5
sbb cl, cl
inc cl
inc dword [esp + 0x2c]
mov byte [esp + 0x94], cl
call fcn.10014cf7
push ebp
push edi
mov dword [esp + 0x68], eax
mov dword [esp + 0x94], edx
call fcn.10014cf7
mov ecx, edx
mov dword [esp + 0x74], eax
add esp, 0x18
mov dword [esp + 0x54], ecx
cmp dword [esp + 0x7c], ecx
ja 0x10013da9
jb 0x10014285
cmp dword [esp + 0x50], eax
ja 0x10013da9
jmp 0x10014285
xor ecx, ecx
mov eax, ebx
neg eax
mov ebp, 0x10091ef0
cmp eax, edx
push 0
setg cl
imul edx, ebx, 0xfff4d105
shr edx, 0x14
sub edx, ecx
add ebx, edx
mov dword [esp + 0x70], edx
imul eax, ebx, 0xffed6cb1
mov dword [esp + 0x28], ebx
shr eax, 0x13
sub edx, eax
mov eax, ebx
shl eax, 4
sub ebp, eax
mov dword [esp + 0x20], edx
mov eax, dword [ebp]
mov ecx, dword [ebp + 4]
mov dword [esp + 0x4c], eax
mul esi
mov dword [esp + 0x48], 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 + 0x24]
add eax, esi
mov ecx, edx
mov dword [esp + 0x30], eax
mov eax, dword [ebp + 4]
pop esi
adc ecx, esi
mul dword [esp + 0x18]
push 0
mov dword [esp + 0x54], eax
mov eax, edx
mov edx, dword [esp + 0x54]
add edx, ecx
adc eax, esi
add edx, edi
mov dword [esp + 0x54], edx
adc eax, esi
or dword [esp + 0x30], esi
mov esi, dword [ebp + 8]
mov dword [esp + 0x64], eax
xor eax, eax
or eax, ebx
mov dword [esp + 0x44], esi
mov dword [esp + 0x50], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x2c], eax
mov eax, esi
mul dword [esp + 0x24]
pop ebp
mov ebx, eax
mov ecx, edx
mov eax, esi
mul dword [esp + 0x18]
mov esi, eax
mov edi, edx
mov eax, dword [esp + 0x28]
add esi, ecx
adc edi, ebp
mul dword [esp + 0x20]
add eax, esi
mov ecx, edx
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x28]
adc ecx, ebp
mul dword [esp + 0x18]
mov esi, eax
mov eax, edx
mov edx, dword [esp + 0x50]
add esi, ecx
mov ecx, dword [esp + 0x14]
adc eax, ebp
add esi, edi
adc eax, ebp
xor edi, edi
or edi, ebx
mov dword [esp + 0x18], eax
xor ebx, ebx
or ecx, ebx
add edi, edx
mov dword [esp + 0x50], edi
adc ecx, dword [esp + 0x60]
mov dword [esp + 0x14], ecx
cmp ecx, dword [esp + 0x60]
ja 0x10013f46
jb 0x10013f3d
cmp edi, edx
jae 0x10013f46
xor edx, edx
mov ebp, ebx
inc edx
mov eax, edx
jmp 0x10013f5a
xorps xmm0, xmm0
xor edx, edx
movlpd qword [esp + 0x64], xmm0
inc edx
mov ebp, dword [esp + 0x68]
mov eax, dword [esp + 0x64]
add esi, eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x38], esi
adc dword [esp + 0x18], ebp
mov esi, dword [esp + 0x4c]
add eax, esi
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x44]
adc eax, dword [esp + 0x2c]
cmp eax, dword [esp + 0x2c]
ja 0x10013f8e
jb 0x10013f88
cmp dword [esp + 0x60], esi
jae 0x10013f8e
mov eax, edx
mov esi, ebx
jmp 0x10013f9f
xorps xmm0, xmm0
movlpd qword [esp + 0x64], xmm0
mov esi, dword [esp + 0x68]
mov eax, dword [esp + 0x64]
add eax, dword [esp + 0x40]
adc esi, dword [esp + 0x28]
add eax, edi
adc esi, ecx
cmp esi, ecx
ja 0x10013fb9
jb 0x10013fb5
cmp eax, edi
jae 0x10013fb9
mov eax, ebx
jmp 0x10013fca
xorps xmm0, xmm0
movlpd qword [esp + 0x64], xmm0
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0x64]
mov ebp, dword [esp + 0x1c]
push 9
pop ecx
sub ecx, ebp
mov dword [esp + 0x3c], ecx
lea ecx, [ebp + 0x17]
shr esi, cl
xor ebp, ebp
add edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
adc eax, dword [esp + 0x18]
mov dword [esp + 0x60], eax
mov eax, edx
mov edx, dword [esp + 0x60]
call fcn.1002e810
xor ecx, ecx
or esi, eax
or ebp, edx
mov dword [esp + 0x54], esi
inc ecx
mov dword [esp + 0x20], ebp
cmp dword [esp + 0x30], ecx
jne 0x100140ac
mov edx, dword [esp + 0x4c]
mov eax, edx
sub eax, dword [esp + 0x48]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x2c]
sbb eax, dword [esp + 0x44]
cmp eax, dword [esp + 0x2c]
jb 0x1001403c
ja 0x10014036
cmp dword [esp + 0x60], edx
jbe 0x1001403c
mov eax, ecx
mov ebp, ebx
jmp 0x1001404d
xorps xmm0, xmm0
movlpd qword [esp + 0x64], xmm0
mov ebp, dword [esp + 0x68]
mov eax, dword [esp + 0x64]
mov edx, edi
mov edi, dword [esp + 0x14]
sub edx, eax
sbb edi, ebp
sub edx, dword [esp + 0x40]
sbb edi, dword [esp + 0x28]
cmp edi, dword [esp + 0x14]
jb 0x10014075
ja 0x1001406d
cmp edx, dword [esp + 0x50]
jbe 0x10014075
mov edx, ecx
mov dword [esp + 0x60], ebx
jmp 0x1001408a
xorps xmm0, xmm0
movlpd qword [esp + 0x64], xmm0
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0x64]
mov dword [esp + 0x60], eax
mov ecx, dword [esp + 0x1c]
xor ebp, ebp
mov eax, dword [esp + 0x38]
lea ecx, [ecx + 0x17]
shr edi, cl
sub eax, edx
mov edx, dword [esp + 0x18]
sbb edx, dword [esp + 0x60]
mov ecx, dword [esp + 0x3c]
jmp 0x100141ec
mov eax, dword [esp + 0x4c]
mov edi, eax
mov ebp, dword [esp + 0x2c]
shld ebp, edi, 1
add edi, edi
mov dword [esp + 0x4c], ebp
cmp ebp, dword [esp + 0x2c]
ja 0x100140d4
jb 0x100140cc
cmp edi, eax
jae 0x100140d4
mov esi, ecx
mov dword [esp + 0x60], ebx
jmp 0x100140e9
xorps xmm0, xmm0
movlpd qword [esp + 0x64], xmm0
mov eax, dword [esp + 0x68]
mov esi, dword [esp + 0x64]
mov dword [esp + 0x60], eax
mov edx, dword [esp + 0x50]
mov ebp, dword [esp + 0x14]
shld ebp, edx, 1
add edx, edx
add edx, esi
adc ebp, dword [esp + 0x60]
cmp ebp, dword [esp + 0x14]
ja 0x10014115
jb 0x1001410b
cmp edx, dword [esp + 0x50]
jae 0x10014115
mov dword [esp + 0x60], ecx
mov dword [esp + 0x50], ebx
jmp 0x1001412e
xorps xmm0, xmm0
movlpd qword [esp + 0x64], xmm0
mov eax, dword [esp + 0x68]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x60], eax
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x38]
mov dword [esp + 0x2c], esi
shld dword [esp + 0x2c], eax, 1
mov esi, dword [esp + 0x54]
add eax, eax
add eax, dword [esp + 0x60]
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x50]
adc dword [esp + 0x2c], eax
mov eax, edi
sub eax, dword [esp + 0x48]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x4c]
sbb eax, dword [esp + 0x44]
cmp eax, dword [esp + 0x4c]
jb 0x1001417e
ja 0x10014176
cmp dword [esp + 0x60], edi
jbe 0x1001417e
mov edi, ecx
mov dword [esp + 0x60], ebx
jmp 0x10014193
xorps xmm0, xmm0
movlpd qword [esp + 0x54], xmm0
mov eax, dword [esp + 0x58]
mov edi, dword [esp + 0x54]
mov dword [esp + 0x60], eax
mov eax, edx
sub eax, edi
mov edi, ebp
sbb edi, dword [esp + 0x60]
sub eax, dword [esp + 0x40]
sbb edi, dword [esp + 0x28]
cmp edi, ebp
jb 0x100141b7
ja 0x100141af
cmp eax, edx
jbe 0x100141b7
mov edx, ecx
mov dword [esp + 0x60], ebx
jmp 0x100141cc
xorps xmm0, xmm0
movlpd qword [esp + 0x54], xmm0
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x54]
mov dword [esp + 0x60], eax
mov ecx, dword [esp + 0x1c]
xor ebp, ebp
mov eax, dword [esp + 0x64]
push 8
lea ecx, [ecx + 0x18]
shr edi, cl
sub eax, edx
mov edx, dword [esp + 0x30]
sbb edx, dword [esp + 0x64]
pop ecx
sub ecx, dword [esp + 0x1c]
call fcn.1002e810
mov ecx, dword [esp + 0x1c]
or ebp, edx
xor edx, edx
or edi, eax
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x18]
lea ecx, [ecx + 0x17]
shr dword [esp + 0x14], cl
mov ecx, dword [esp + 0x3c]
call fcn.1002e810
or dword [esp + 0x14], eax
xor eax, eax
or eax, edx
xor edx, edx
mov dword [esp + 0x18], eax
inc edx
mov eax, dword [esp + 0x6c]
cmp eax, edx
ja 0x10014255
mov al, dl
mov byte [esp + 0x7c], al
cmp byte [esp + 0x13], bl
je 0x10014246
mov cl, byte [esp + 0x30]
mov byte [esp + 0x84], cl
jmp 0x10013cc4
add esi, 0xffffffff
mov cl, bl
adc dword [esp + 0x20], 0xffffffff
jmp 0x10013cc4
cmp eax, 0x3f
jae 0x10013cc0
dec eax
push eax
push dword [esp + 0x38]
push dword [esp + 0x64]
call fcn.10015881
add esp, 0xc
mov byte [esp + 0x7c], al
mov dword [esp + 0x1c], ebx
mov byte [esp + 0x12], bl
jmp 0x10013cd4
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
cmp eax, edi
jne 0x10014291
cmp esi, ebp
je 0x100142b4
cmp byte [esp + 0x84], 0
jne 0x100142b4
xorps xmm0, xmm0
movlpd qword [esp + 0x7c], xmm0
mov ebx, dword [esp + 0x80]
mov edx, dword [esp + 0x7c]
jmp 0x1001447d
xor edx, edx
inc edx
jmp 0x1001447d
push dword [esp + 0x20]
push esi
call fcn.10014cf7
mov ebx, eax
mov dword [esp + 0x40], edx
push ebp
push edi
mov dword [esp + 0x64], ebx
call fcn.10014cf7
add esp, 0x10
mov dword [esp + 0x5c], edx
mov esi, eax
cmp dword [esp + 0x38], edx
jb 0x10014397
ja 0x100142f4
cmp ebx, esi
jbe 0x10014397
mov ebx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
push edx
push ebx
call fcn.10014cf7
movzx ecx, byte [esp + 0x8c]
mov ebx, eax
push dword [esp + 0x40]
mov ebp, dword [esp + 0x68]
xor eax, eax
push dword [esp + 0x60]
mov dword [esp + 0x28], edx
imul edx, esi, 0xa
cmp edi, edx
mov edi, esi
cmove eax, ecx
movzx ecx, byte [esp + 0x8c]
xor edx, edx
mov byte [esp + 0x94], al
cmp byte [esp + 0x22], dl
movzx eax, bl
cmove edx, ecx
mov cl, byte [esp + 0x24]
imul eax, eax, 0xa
mov byte [esp + 0x8c], dl
mov dword [esp + 0x24], ebx
sub cl, al
inc dword [esp + 0x2c]
mov byte [esp + 0x22], cl
call fcn.10014cf7
push ebp
push esi
mov dword [esp + 0x6c], eax
mov dword [esp + 0x50], edx
call fcn.10014cf7
mov esi, eax
add esp, 0x18
mov eax, edx
mov dword [esp + 0x5c], eax
cmp dword [esp + 0x38], eax
ja 0x100142f8
jb 0x1001439b
cmp dword [esp + 0x54], esi
ja 0x100142f8
jmp 0x1001439b
mov ebx, dword [esp + 0x14]
mov ch, byte [esp + 0x84]
test ch, ch
je 0x10014444
push ebp
push edi
call fcn.10014cf7
pop ecx
pop ecx
imul ecx, eax, 0xa
mov esi, edi
mov dword [esp + 0x60], eax
mov dword [esp + 0x5c], edx
sub esi, ecx
mov esi, dword [esp + 0x18]
jne 0x1001441d
push esi
push ebx
call fcn.10014cf7
cmp byte [esp + 0x1a], 0
mov esi, edx
sete cl
and byte [esp + 0x84], cl
movzx ecx, al
imul ecx, ecx, 0xa
sub bl, cl
mov ecx, dword [esp + 0x64]
inc dword [esp + 0x24]
mov ebp, ecx
mov byte [esp + 0x1a], bl
mov ebx, eax
mov eax, dword [esp + 0x68]
mov edi, eax
push ecx
push eax
call fcn.10014cf7
mov dword [esp + 0x70], eax
mov ecx, edi
imul eax, eax, 0xa
add esp, 0x10
mov dword [esp + 0x5c], edx
sub ecx, eax
je 0x100143c8
mov dword [esp + 0x14], ebx
mov ch, byte [esp + 0x84]
mov cl, byte [esp + 0x12]
xor edx, edx
cmp byte [esp + 0x7c], dl
je 0x1001444a
cmp cl, 5
jne 0x1001444a
mov eax, ebx
inc edx
and eax, edx
xor ebx, ebx
or eax, ebx
jne 0x1001444d
dec cl
jmp 0x1001444d
mov esi, dword [esp + 0x18]
jmp 0x10014424
xor ebx, ebx
inc edx
mov eax, dword [esp + 0x14]
cmp eax, edi
jne 0x10014464
cmp esi, ebp
jne 0x10014464
cmp byte [esp + 0x13], 0
je 0x1001447d
test ch, ch
je 0x1001447d
cmp cl, 5
jae 0x1001447d
xorps xmm0, xmm0
movlpd qword [esp + 0x7c], xmm0
mov ebx, dword [esp + 0x80]
mov edx, dword [esp + 0x7c]
mov ecx, dword [esp + 0x24]
add edx, eax
mov eax, dword [esp + 0x78]
adc ebx, esi
add ecx, dword [esp + 0x1c]
pop edi
pop esi
pop ebp
mov dword [eax + 4], ebx
mov dword [eax + 8], ecx
mov dword [eax], edx
pop ebx
add esp, 0x64
ret