Function at 0x1000c4bc
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 0x1000c4e2
mov dword [esp + 0x58], 0xfffffbcc
jmp 0x1000c4f1
add eax, 0xfffffbcb
or edi, 0x100000
mov dword [esp + 0x58], eax
xor edx, edx
mov eax, esi
inc edx
xor ecx, ecx
and eax, edx
mov byte [esp + 0x13], dl
or eax, ecx
je 0x1000c506
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 + 0x38], ebx
mov dword [esp + 0x60], eax
jne 0x1000c52f
mov dword [esp + 0x34], ecx
cmp dword [esp + 0x84], edx
ja 0x1000c533
mov dword [esp + 0x34], edx
mov ebx, dword [esp + 0x58]
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 0x1000c9ed
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, 0x1002e5c0
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 + 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 + 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 + 0x40], eax
mov eax, edx
mov edx, dword [esp + 0x40]
add edx, ecx
adc eax, esi
add edx, edi
mov dword [esp + 0x40], edx
adc eax, esi
or dword [esp + 0x2c], esi
mov esi, dword [ebp + 8]
mov dword [esp + 0x68], eax
xor eax, eax
or eax, ebx
mov dword [esp + 0x54], esi
mov dword [esp + 0x44], 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 + 0x3c]
or edi, ebx
xor ebx, ebx
mov dword [esp + 0x18], eax
or ecx, ebx
add edi, edx
mov dword [esp + 0x44], edi
adc ecx, dword [esp + 0x64]
mov dword [esp + 0x14], ecx
cmp ecx, dword [esp + 0x64]
ja 0x1000c674
jb 0x1000c66b
cmp edi, edx
jae 0x1000c674
xor edx, edx
mov ebp, ebx
inc edx
mov eax, edx
jmp 0x1000c688
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 + 0x48]
mov dword [esp + 0x3c], esi
adc dword [esp + 0x18], ebp
mov esi, dword [esp + 0x40]
add eax, esi
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x4c]
adc eax, dword [esp + 0x28]
cmp eax, dword [esp + 0x28]
ja 0x1000c6bc
jb 0x1000c6b6
cmp dword [esp + 0x64], esi
jae 0x1000c6bc
mov eax, edx
mov esi, ebx
jmp 0x1000c6cd
xorps xmm0, xmm0
movlpd qword [esp + 0x6c], xmm0
mov esi, dword [esp + 0x70]
mov eax, dword [esp + 0x6c]
add eax, dword [esp + 0x50]
adc esi, dword [esp + 0x2c]
add eax, edi
adc esi, ecx
cmp esi, ecx
ja 0x1000c6e7
jb 0x1000c6e3
cmp eax, edi
jae 0x1000c6e7
mov eax, ebx
jmp 0x1000c6f8
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 + 0x54], ecx
lea ecx, [ebp + 0x19]
shr esi, cl
xor ebp, ebp
add edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x54]
adc eax, dword [esp + 0x18]
mov dword [esp + 0x64], eax
mov eax, edx
mov edx, dword [esp + 0x64]
call fcn.10010f30
xor ecx, ecx
or esi, eax
or ebp, edx
mov dword [esp + 0x58], esi
inc ecx
mov dword [esp + 0x20], ebp
cmp dword [esp + 0x34], ecx
jne 0x1000c7da
mov edx, dword [esp + 0x40]
mov eax, edx
sub eax, dword [esp + 0x48]
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x28]
sbb eax, dword [esp + 0x4c]
cmp eax, dword [esp + 0x28]
jb 0x1000c76a
ja 0x1000c764
cmp dword [esp + 0x64], edx
jbe 0x1000c76a
mov eax, ecx
mov ebp, ebx
jmp 0x1000c77b
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 + 0x50]
sbb edi, dword [esp + 0x2c]
cmp edi, dword [esp + 0x14]
jb 0x1000c7a3
ja 0x1000c79b
cmp edx, dword [esp + 0x44]
jbe 0x1000c7a3
mov edx, ecx
mov dword [esp + 0x58], ebx
jmp 0x1000c7b8
xorps xmm0, xmm0
movlpd qword [esp + 0x6c], xmm0
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x58], eax
mov ecx, dword [esp + 0x1c]
xor ebp, ebp
mov eax, dword [esp + 0x3c]
lea ecx, [ecx + 0x19]
shr edi, cl
sub eax, edx
mov edx, dword [esp + 0x18]
sbb edx, dword [esp + 0x58]
mov ecx, dword [esp + 0x54]
jmp 0x1000c91a
mov eax, dword [esp + 0x40]
mov edi, eax
mov ebp, dword [esp + 0x28]
shld ebp, edi, 1
add edi, edi
mov dword [esp + 0x64], ebp
cmp ebp, dword [esp + 0x28]
ja 0x1000c802
jb 0x1000c7fa
cmp edi, eax
jae 0x1000c802
mov esi, ecx
mov dword [esp + 0x40], ebx
jmp 0x1000c817
xorps xmm0, xmm0
movlpd qword [esp + 0x6c], xmm0
mov eax, dword [esp + 0x70]
mov esi, dword [esp + 0x6c]
mov dword [esp + 0x40], eax
mov edx, dword [esp + 0x44]
mov ebp, dword [esp + 0x14]
shld ebp, edx, 1
add edx, edx
add edx, esi
adc ebp, dword [esp + 0x40]
cmp ebp, dword [esp + 0x14]
ja 0x1000c843
jb 0x1000c839
cmp edx, dword [esp + 0x44]
jae 0x1000c843
mov dword [esp + 0x44], ecx
mov dword [esp + 0x40], ebx
jmp 0x1000c85c
xorps xmm0, xmm0
movlpd qword [esp + 0x6c], xmm0
mov eax, dword [esp + 0x70]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x44], eax
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x28], esi
shld dword [esp + 0x28], eax, 1
mov esi, dword [esp + 0x58]
add eax, eax
add eax, dword [esp + 0x44]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x40]
adc dword [esp + 0x28], eax
mov eax, edi
sub eax, dword [esp + 0x48]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x64]
sbb eax, dword [esp + 0x4c]
cmp eax, dword [esp + 0x64]
jb 0x1000c8ac
ja 0x1000c8a4
cmp dword [esp + 0x48], edi
jbe 0x1000c8ac
mov edi, ecx
mov dword [esp + 0x64], ebx
jmp 0x1000c8c1
xorps xmm0, xmm0
movlpd qword [esp + 0x6c], xmm0
mov eax, dword [esp + 0x70]
mov edi, dword [esp + 0x6c]
mov dword [esp + 0x64], eax
mov eax, edx
sub eax, edi
mov edi, ebp
sbb edi, dword [esp + 0x64]
sub eax, dword [esp + 0x50]
sbb edi, dword [esp + 0x2c]
cmp edi, ebp
jb 0x1000c8e5
ja 0x1000c8dd
cmp eax, edx
jbe 0x1000c8e5
mov edx, ecx
mov dword [esp + 0x64], ebx
jmp 0x1000c8fa
xorps xmm0, xmm0
movlpd qword [esp + 0x6c], xmm0
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x64], eax
mov ecx, dword [esp + 0x1c]
xor ebp, ebp
mov eax, dword [esp + 0x44]
push 6
lea ecx, [ecx + 0x1a]
shr edi, cl
sub eax, edx
mov edx, dword [esp + 0x2c]
sbb edx, dword [esp + 0x68]
pop ecx
sub ecx, dword [esp + 0x1c]
call fcn.10010f30
mov ecx, dword [esp + 0x1c]
or ebp, edx
xor edx, edx
or edi, eax
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x18]
lea ecx, [ecx + 0x19]
shr dword [esp + 0x14], cl
mov ecx, dword [esp + 0x54]
call fcn.10010f30
or dword [esp + 0x14], eax
xor eax, eax
or eax, edx
cmp dword [esp + 0x24], 0x15
mov dword [esp + 0x18], eax
ja 0x1000d036
push dword [esp + 0x38]
push dword [esp + 0x64]
call fcn.1000da5c
mov edx, dword [esp + 0x68]
pop ecx
imul eax, eax, 5
pop ecx
mov ecx, edx
sub ecx, eax
jne 0x1000c98d
push dword [esp + 0x38]
push edx
call fcn.1000e10f
cmp eax, dword [esp + 0x2c]
pop ecx
sbb al, al
pop ecx
inc al
jmp 0x1000ce3a
mov eax, dword [esp + 0x38]
cmp byte [esp + 0x13], bl
je 0x1000c9c9
sub edx, dword [esp + 0x34]
sbb eax, ebx
add edx, 0xffffffff
adc eax, 0xffffffff
push eax
push edx
call fcn.1000e10f
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 0x1000ce19
add edx, 2
adc eax, ebx
push eax
push edx
call fcn.1000e10f
cmp eax, dword [esp + 0x2c]
pop ecx
sbb eax, eax
inc eax
sub esi, eax
mov al, bl
pop ecx
sbb dword [esp + 0x20], ebx
mov cl, al
jmp 0x1000ce19
xor ecx, ecx
mov eax, ebx
neg eax
mov ebp, 0x1002f800
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 + 0x80], 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 + 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 + 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 + 0x30], esi
mov esi, dword [ebp + 8]
mov dword [esp + 0x68], 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 + 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 + 0x54]
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 + 0x1c], eax
xor ebx, ebx
or ecx, ebx
add edi, edx
mov dword [esp + 0x54], edi
adc ecx, dword [esp + 0x64]
mov dword [esp + 0x14], ecx
cmp ecx, dword [esp + 0x64]
ja 0x1000cb14
jb 0x1000cb0b
cmp edi, edx
jae 0x1000cb14
xor edx, edx
mov ebp, ebx
inc edx
mov eax, edx
jmp 0x1000cb28
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 + 0x4c]
mov dword [esp + 0x3c], esi
adc dword [esp + 0x1c], ebp
mov esi, dword [esp + 0x50]
add eax, esi
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x48]
adc eax, dword [esp + 0x2c]
cmp eax, dword [esp + 0x2c]
ja 0x1000cb5c
jb 0x1000cb56
cmp dword [esp + 0x64], esi
jae 0x1000cb5c
mov eax, edx
mov esi, ebx
jmp 0x1000cb6d
xorps xmm0, xmm0
movlpd qword [esp + 0x64], xmm0
mov esi, dword [esp + 0x68]
mov eax, dword [esp + 0x64]
add eax, dword [esp + 0x44]
adc esi, dword [esp + 0x28]
add eax, edi
adc esi, ecx
cmp esi, ecx
ja 0x1000cb87
jb 0x1000cb83
cmp eax, edi
jae 0x1000cb87
mov eax, ebx
jmp 0x1000cb98
xorps xmm0, xmm0
movlpd qword [esp + 0x64], xmm0
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0x64]
mov ebp, dword [esp + 0x7c]
push 9
pop ecx
sub ecx, ebp
mov dword [esp + 0x40], ecx
lea ecx, [ebp + 0x17]
shr esi, cl
xor ebp, ebp
add edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x40]
adc eax, dword [esp + 0x1c]
mov dword [esp + 0x64], eax
mov eax, edx
mov edx, dword [esp + 0x64]
call fcn.10010f30
xor ecx, ecx
or esi, eax
or ebp, edx
mov dword [esp + 0x58], esi
inc ecx
mov dword [esp + 0x20], ebp
cmp dword [esp + 0x34], ecx
jne 0x1000cc7a
mov edx, dword [esp + 0x50]
mov eax, edx
sub eax, dword [esp + 0x4c]
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x2c]
sbb eax, dword [esp + 0x48]
cmp eax, dword [esp + 0x2c]
jb 0x1000cc0a
ja 0x1000cc04
cmp dword [esp + 0x64], edx
jbe 0x1000cc0a
mov eax, ecx
mov ebp, ebx
jmp 0x1000cc1b
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 + 0x44]
sbb edi, dword [esp + 0x28]
cmp edi, dword [esp + 0x14]
jb 0x1000cc43
ja 0x1000cc3b
cmp edx, dword [esp + 0x54]
jbe 0x1000cc43
mov edx, ecx
mov dword [esp + 0x64], ebx
jmp 0x1000cc58
xorps xmm0, xmm0
movlpd qword [esp + 0x58], xmm0
mov eax, dword [esp + 0x5c]
mov edx, dword [esp + 0x58]
mov dword [esp + 0x64], eax
mov ecx, dword [esp + 0x7c]
xor ebp, ebp
mov eax, dword [esp + 0x3c]
lea ecx, [ecx + 0x17]
shr edi, cl
sub eax, edx
mov edx, dword [esp + 0x1c]
sbb edx, dword [esp + 0x64]
mov ecx, dword [esp + 0x40]
jmp 0x1000cdba
mov eax, dword [esp + 0x50]
mov edi, eax
mov ebp, dword [esp + 0x2c]
shld ebp, edi, 1
add edi, edi
mov dword [esp + 0x50], ebp
cmp ebp, dword [esp + 0x2c]
ja 0x1000cca2
jb 0x1000cc9a
cmp edi, eax
jae 0x1000cca2
mov esi, ecx
mov dword [esp + 0x64], ebx
jmp 0x1000ccb7
xorps xmm0, xmm0
movlpd qword [esp + 0x2c], xmm0
mov eax, dword [esp + 0x30]
mov esi, dword [esp + 0x2c]
mov dword [esp + 0x64], eax
mov edx, dword [esp + 0x54]
mov ebp, dword [esp + 0x14]
shld ebp, edx, 1
add edx, edx
add edx, esi
adc ebp, dword [esp + 0x64]
cmp ebp, dword [esp + 0x14]
ja 0x1000cce3
jb 0x1000ccd9
cmp edx, dword [esp + 0x54]
jae 0x1000cce3
mov dword [esp + 0x64], ecx
mov dword [esp + 0x54], ebx
jmp 0x1000ccfc
xorps xmm0, xmm0
movlpd qword [esp + 0x64], xmm0
mov eax, dword [esp + 0x68]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x64], eax
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x2c], esi
shld dword [esp + 0x2c], eax, 1
mov esi, dword [esp + 0x58]
add eax, eax
add eax, dword [esp + 0x64]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x54]
adc dword [esp + 0x2c], eax
mov eax, edi
sub eax, dword [esp + 0x4c]
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x50]
sbb eax, dword [esp + 0x48]
cmp eax, dword [esp + 0x50]
jb 0x1000cd4c
ja 0x1000cd44
cmp dword [esp + 0x64], edi
jbe 0x1000cd4c
mov edi, ecx
mov dword [esp + 0x64], ebx
jmp 0x1000cd61
xorps xmm0, xmm0
movlpd qword [esp + 0x58], xmm0
mov eax, dword [esp + 0x5c]
mov edi, dword [esp + 0x58]
mov dword [esp + 0x64], eax
mov eax, edx
sub eax, edi
mov edi, ebp
sbb edi, dword [esp + 0x64]
sub eax, dword [esp + 0x44]
sbb edi, dword [esp + 0x28]
cmp edi, ebp
jb 0x1000cd85
ja 0x1000cd7d
cmp eax, edx
jbe 0x1000cd85
mov edx, ecx
mov dword [esp + 0x64], ebx
jmp 0x1000cd9a
xorps xmm0, xmm0
movlpd qword [esp + 0x58], xmm0
mov eax, dword [esp + 0x5c]
mov edx, dword [esp + 0x58]
mov dword [esp + 0x64], eax
mov ecx, dword [esp + 0x7c]
xor ebp, ebp
mov eax, dword [esp + 0x18]
push 8
lea ecx, [ecx + 0x18]
shr edi, cl
sub eax, edx
mov edx, dword [esp + 0x30]
sbb edx, dword [esp + 0x68]
pop ecx
sub ecx, dword [esp + 0x7c]
call fcn.10010f30
mov ecx, dword [esp + 0x7c]
or edi, eax
mov eax, dword [esp + 0x3c]
or ebp, edx
mov edx, dword [esp + 0x1c]
lea ecx, [ecx + 0x17]
shr dword [esp + 0x14], cl
mov ecx, dword [esp + 0x40]
call fcn.10010f30
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 0x1000ce1f
mov al, dl
mov byte [esp + 0x7c], al
cmp byte [esp + 0x13], bl
je 0x1000ce0f
mov cl, byte [esp + 0x34]
mov byte [esp + 0x84], cl
jmp 0x1000ce19
add esi, 0xffffffff
mov cl, bl
adc dword [esp + 0x20], 0xffffffff
test cl, cl
jne 0x1000ce46
jmp 0x1000ce3e
cmp eax, 0x3f
jae 0x1000d036
dec eax
push eax
push dword [esp + 0x3c]
push dword [esp + 0x68]
call fcn.1000e0aa
add esp, 0xc
mov byte [esp + 0x7c], al
test al, al
je 0x1000d036
push dword [esp + 0x20]
push esi
call fcn.1000d9ed
push ebp
push edi
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], edx
call fcn.1000d9ed
mov esi, eax
mov dword [esp + 0x74], eax
mov eax, edx
mov dword [esp + 0x2c], ebx
add esp, 0x10
mov dword [esp + 0x60], eax
mov byte [esp + 0x12], bl
cmp dword [esp + 0x3c], eax
jb 0x1000cf40
ja 0x1000ce8c
cmp dword [esp + 0x38], esi
jbe 0x1000cf40
mov dword [esp + 0x1c], ebx
mov byte [esp + 0x12], bl
mov edx, dword [esp + 0x18]
push edx
push dword [esp + 0x18]
call fcn.1000d9ed
movzx ecx, byte [esp + 0x8c]
mov ebx, eax
push dword [esp + 0x44]
imul esi, esi, 0xa
xor eax, eax
push dword [esp + 0x44]
mov dword [esp + 0x28], edx
cmp edi, esi
mov esi, dword [esp + 0x74]
mov edi, esi
cmove eax, ecx
movzx ecx, byte [esp + 0x8c]
mov byte [esp + 0x94], al
xor eax, eax
cmp byte [esp + 0x22], al
cmove eax, ecx
mov cl, byte [esp + 0x24]
mov byte [esp + 0x8c], al
movzx eax, bl
imul eax, eax, 0xa
mov dword [esp + 0x24], ebx
mov ebx, dword [esp + 0x70]
mov ebp, ebx
sub cl, al
inc dword [esp + 0x2c]
mov byte [esp + 0x22], cl
call fcn.1000d9ed
push ebx
push esi
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], edx
call fcn.1000d9ed
mov esi, eax
add esp, 0x18
mov eax, edx
mov dword [esp + 0x64], esi
mov dword [esp + 0x60], eax
cmp dword [esp + 0x3c], eax
ja 0x1000ce94
jb 0x1000cf3e
cmp dword [esp + 0x38], esi
ja 0x1000ce94
xor ebx, ebx
mov ch, byte [esp + 0x84]
test ch, ch
je 0x1000cfec
push ebp
push edi
call fcn.1000d9ed
pop ecx
pop ecx
imul ecx, eax, 0xa
mov esi, edi
mov dword [esp + 0x64], eax
sub esi, ecx
mov esi, dword [esp + 0x18]
jmp 0x1000cfbd
push esi
push dword [esp + 0x18]
call fcn.1000d9ed
cmp byte [esp + 0x1a], 0
mov esi, edx
mov dl, byte [esp + 0x1c]
sete cl
mov dword [esp + 0x1c], eax
and byte [esp + 0x84], cl
movzx ecx, al
mov eax, dword [esp + 0x6c]
mov edi, eax
imul ecx, ecx, 0xa
sub dl, cl
mov ecx, dword [esp + 0x68]
inc dword [esp + 0x24]
mov ebp, ecx
push ecx
push eax
mov byte [esp + 0x22], dl
call fcn.1000d9ed
mov dword [esp + 0x74], eax
mov ecx, edi
imul eax, eax, 0xa
add esp, 0x10
sub ecx, eax
mov dword [esp + 0x60], edx
je 0x1000cf69
mov ch, byte [esp + 0x84]
mov cl, byte [esp + 0x7c]
test cl, cl
mov cl, byte [esp + 0x12]
je 0x1000cff2
xor edx, edx
inc edx
cmp cl, 5
jne 0x1000cff5
mov eax, dword [esp + 0x14]
and eax, edx
or eax, ebx
jne 0x1000cff5
dec cl
jmp 0x1000cff5
mov esi, dword [esp + 0x18]
jmp 0x1000cfca
xor edx, edx
inc edx
mov eax, dword [esp + 0x14]
cmp eax, edi
jne 0x1000d014
cmp esi, ebp
jne 0x1000d014
cmp byte [esp + 0x13], 0
je 0x1000d1a4
test ch, ch
je 0x1000d1a4
cmp cl, 5
jae 0x1000d1a4
xorps xmm0, xmm0
movlpd qword [esp + 0x7c], xmm0
mov ebx, dword [esp + 0x80]
mov edx, dword [esp + 0x7c]
jmp 0x1000d1a4
push dword [esp + 0x20]
mov byte [esp + 0x88], bl
push esi
call fcn.1000d9c2
push ebp
push edi
mov dword [esp + 0x8c], eax
mov dword [esp + 0x74], edx
call fcn.1000d9c2
mov ecx, edx
mov dword [esp + 0x7c], eax
add esp, 0x10
mov dword [esp + 0x60], ecx
mov dword [esp + 0x1c], ebx
cmp dword [esp + 0x64], ecx
jb 0x1000d0c6
ja 0x1000d078
cmp dword [esp + 0x7c], eax
jbe 0x1000d0c6
mov edx, dword [esp + 0x18]
push edx
push dword [esp + 0x18]
call fcn.1000d9c2
mov esi, dword [esp + 0x84]
mov edi, dword [esp + 0x74]
mov ebp, dword [esp + 0x68]
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 + 0x64]
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.1000d9ed
mov esi, eax
mov dword [esp + 0x84], edx
push ebp
push edi
mov dword [esp + 0x64], esi
call fcn.1000d9ed
add esp, 0x10
mov dword [esp + 0x60], eax
mov dword [esp + 0x58], edx
cmp dword [esp + 0x7c], edx
jb 0x1000d171
ja 0x1000d0fb
cmp esi, eax
jbe 0x1000d171
mov esi, dword [esp + 0x18]
push esi
push dword [esp + 0x18]
call fcn.1000d9ed
push dword [esp + 0x84]
mov edi, dword [esp + 0x6c]
mov esi, edx
mov edx, dword [esp + 0x20]
push dword [esp + 0x60]
mov ebp, dword [esp + 0x68]
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.1000d9ed
push ebp
push edi
mov dword [esp + 0x6c], eax
mov dword [esp + 0x94], edx
call fcn.1000d9ed
mov ecx, edx
mov dword [esp + 0x78], eax
add esp, 0x18
mov dword [esp + 0x58], ecx
cmp dword [esp + 0x7c], ecx
ja 0x1000d0ff
jb 0x1000d175
cmp dword [esp + 0x54], eax
ja 0x1000d0ff
jmp 0x1000d175
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
cmp eax, edi
jne 0x1000d181
cmp esi, ebp
je 0x1000d1a1
cmp byte [esp + 0x84], 0
jne 0x1000d1a1
xorps xmm0, xmm0
movlpd qword [esp + 0x7c], xmm0
mov ebx, dword [esp + 0x80]
mov edx, dword [esp + 0x7c]
jmp 0x1000d1a4
xor edx, edx
inc edx
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