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

Disassembly:
sub esp, 0x70
push ebx
mov ebx, dword [esp + 0x80]
push ebp
push esi
mov ebp, ecx
mov esi, ebx
push edi
mov edi, dword [esp + 0x88]
mov edx, edi
test ebp, ebp
jne 0x1001b699
mov dword [esp + 0x5c], 0xfffffbcc
jmp 0x1001b6a9
lea eax, [ebp - 0x435]
or esi, 0x100000
mov dword [esp + 0x5c], eax
mov eax, edx
mov byte [esp + 0x17], 1
and eax, 1
or eax, 0
je 0x1001b6bd
mov byte [esp + 0x17], 0
mov eax, edx
mov ecx, esi
shld ecx, eax, 2
shl eax, 2
or edi, ebx
mov dword [esp + 0x64], ecx
mov dword [esp + 0x60], eax
jne 0x1001b6dd
mov dword [esp + 0x38], edi
cmp ebp, 1
ja 0x1001b6e5
mov dword [esp + 0x38], 1
mov ebx, dword [esp + 0x5c]
xor al, al
shld esi, edx, 1
mov byte [esp + 0x14], 0
add edx, edx
mov byte [esp + 0x15], al
mov dword [esp + 0x3c], esi
mov dword [esp + 0x40], edx
test ebx, ebx
js 0x1001bd11
xor eax, eax
imul ecx, ebx, 0x13441
shr ecx, 0x12
cmp ebx, 3
setg al
sub ecx, eax
imul eax, ecx, 0x12934f
mov ebp, ecx
shl ebp, 4
add ebp, 0x101bc740
mov dword [esp + 0x34], ecx
shr eax, 0x13
sub eax, ebx
mov edi, dword [ebp]
add eax, ecx
mov dword [esp + 0x44], edi
mov dword [esp + 0x2c], eax
mov eax, dword [ebp + 4]
mov dword [esp + 0x48], eax
mov eax, edi
mul edx
mov ebx, eax
mov ecx, edx
mov eax, edi
mul esi
mov esi, eax
mov edi, edx
mov eax, dword [ebp + 4]
add esi, ecx
adc edi, 0
mul dword [esp + 0x40]
add eax, esi
mov ecx, edx
mov dword [esp + 0x28], eax
mov eax, dword [ebp + 4]
adc ecx, 0
mul dword [esp + 0x3c]
mov dword [esp + 0x30], eax
mov eax, edx
mov edx, dword [esp + 0x30]
add edx, ecx
adc eax, 0
add edx, edi
mov edi, dword [ebp + 8]
adc eax, 0
mov dword [esp + 0x30], edx
mov dword [esp + 0x5c], eax
xor eax, eax
or eax, ebx
mov dword [esp + 0x4c], edi
mov dword [esp + 0x1c], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x24], eax
mov eax, edi
mul dword [esp + 0x40]
mov ebx, eax
mov ecx, edx
mov eax, edi
mul dword [esp + 0x3c]
mov esi, eax
mov edi, edx
mov eax, dword [esp + 0x24]
add esi, ecx
adc edi, 0
mul dword [esp + 0x40]
add eax, esi
mov ecx, edx
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x24]
adc ecx, 0
mul dword [esp + 0x3c]
mov ebp, eax
add ebp, ecx
mov ecx, dword [esp + 0x30]
adc edx, 0
add ebp, edi
adc edx, 0
xor edi, edi
or edi, ebx
mov ebx, dword [esp + 0x18]
add edi, ecx
adc ebx, dword [esp + 0x5c]
mov dword [esp + 0x68], edi
mov dword [esp + 0x18], ebx
cmp ebx, dword [esp + 0x5c]
ja 0x1001b81a
jb 0x1001b811
cmp edi, ecx
jae 0x1001b81a
mov eax, 1
xor ecx, ecx
jmp 0x1001b82b
xorps xmm0, xmm0
movlpd qword [esp + 0x78], xmm0
mov ecx, dword [esp + 0x7c]
mov eax, dword [esp + 0x78]
add ebp, eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x3c], ebp
adc edx, ecx
mov dword [esp + 0x40], edx
mov edx, dword [esp + 0x1c]
mov esi, edx
add esi, dword [esp + 0x44]
adc eax, dword [esp + 0x48]
cmp eax, dword [esp + 0x28]
ja 0x1001b85e
jb 0x1001b855
cmp esi, edx
jae 0x1001b85e
mov eax, 1
xor ebp, ebp
jmp 0x1001b86f
xorps xmm0, xmm0
movlpd qword [esp + 0x78], xmm0
mov ebp, dword [esp + 0x7c]
mov eax, dword [esp + 0x78]
add eax, edi
adc ebp, ebx
add eax, dword [esp + 0x4c]
adc ebp, dword [esp + 0x24]
cmp ebp, ebx
ja 0x1001b88e
jb 0x1001b885
cmp eax, edi
jae 0x1001b88e
mov eax, 1
xor edx, edx
jmp 0x1001b89f
xorps xmm0, xmm0
movlpd qword [esp + 0x78], xmm0
mov edx, dword [esp + 0x7c]
mov eax, dword [esp + 0x78]
mov esi, dword [esp + 0x2c]
mov ecx, 7
sub ecx, esi
mov dword [esp + 0x50], ecx
lea ecx, [esi + 0x19]
xor esi, esi
shr ebp, cl
add eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x50]
adc edx, dword [esp + 0x40]
call fcn.101a29f0
or ebp, eax
or esi, edx
cmp dword [esp + 0x38], 1
mov eax, dword [esp + 0x28]
mov dword [esp + 0x30], ebp
mov dword [esp + 0x20], esi
jne 0x1001b976
mov edx, dword [esp + 0x1c]
mov esi, edx
sub esi, dword [esp + 0x44]
sbb eax, dword [esp + 0x48]
cmp eax, dword [esp + 0x28]
jb 0x1001b904
ja 0x1001b8fb
cmp esi, edx
jbe 0x1001b904
mov ecx, 1
xor edx, edx
jmp 0x1001b915
xorps xmm0, xmm0
movlpd qword [esp + 0x78], xmm0
mov edx, dword [esp + 0x7c]
mov ecx, dword [esp + 0x78]
mov eax, edi
sub eax, ecx
sbb ebx, edx
sub eax, dword [esp + 0x4c]
sbb ebx, dword [esp + 0x24]
cmp ebx, dword [esp + 0x18]
jb 0x1001b938
ja 0x1001b92f
cmp eax, edi
jbe 0x1001b938
mov edx, 1
xor esi, esi
jmp 0x1001b949
xorps xmm0, xmm0
movlpd qword [esp + 0x78], xmm0
mov esi, dword [esp + 0x7c]
mov edx, dword [esp + 0x78]
mov ecx, dword [esp + 0x2c]
xor edi, edi
mov eax, dword [esp + 0x3c]
lea ecx, [ecx + 0x19]
shr ebx, cl
sub eax, edx
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x50]
sbb edx, esi
call fcn.101a29f0
or ebx, eax
or edi, edx
mov dword [esp + 0x1c], edi
jmp 0x1001bab5
mov ecx, dword [esp + 0x1c]
mov edx, eax
mov esi, ecx
shld edx, esi, 1
add esi, esi
mov dword [esp + 0x28], edx
cmp edx, eax
ja 0x1001b99b
jb 0x1001b992
cmp esi, ecx
jae 0x1001b99b
mov eax, 1
xor edx, edx
jmp 0x1001b9ac
xorps xmm0, xmm0
movlpd qword [esp + 0x78], xmm0
mov edx, dword [esp + 0x7c]
mov eax, dword [esp + 0x78]
mov ecx, edi
mov edi, ebx
shld edi, ecx, 1
add ecx, ecx
add ecx, eax
adc edi, edx
cmp edi, ebx
ja 0x1001b9d5
jb 0x1001b9c6
cmp ecx, dword [esp + 0x68]
jae 0x1001b9d5
mov ebx, 1
mov dword [esp + 0x5c], 0
jmp 0x1001b9ea
xorps xmm0, xmm0
movlpd qword [esp + 0x78], xmm0
mov eax, dword [esp + 0x7c]
mov ebx, dword [esp + 0x78]
mov dword [esp + 0x5c], eax
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x40]
shld eax, edx, 1
add edx, edx
add edx, ebx
adc eax, dword [esp + 0x5c]
mov dword [esp + 0x1c], eax
mov eax, esi
sub eax, dword [esp + 0x44]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x28]
sbb eax, dword [esp + 0x48]
cmp eax, dword [esp + 0x28]
jb 0x1001ba31
ja 0x1001ba22
cmp dword [esp + 0x68], esi
jbe 0x1001ba31
mov esi, 1
mov dword [esp + 0x5c], 0
jmp 0x1001ba46
xorps xmm0, xmm0
movlpd qword [esp + 0x78], xmm0
mov eax, dword [esp + 0x7c]
mov esi, dword [esp + 0x78]
mov dword [esp + 0x5c], eax
mov eax, ecx
mov ebx, edi
sub eax, esi
sbb ebx, dword [esp + 0x5c]
sub eax, dword [esp + 0x4c]
sbb ebx, dword [esp + 0x24]
cmp ebx, edi
jb 0x1001ba71
ja 0x1001ba62
cmp eax, ecx
jbe 0x1001ba71
mov eax, 1
mov dword [esp + 0x5c], 0
jmp 0x1001ba86
xorps xmm0, xmm0
movlpd qword [esp + 0x78], xmm0
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x2c]
xor esi, esi
mov edi, dword [esp + 0x1c]
add ecx, 0x1a
shr ebx, cl
sub edx, eax
mov ecx, 6
mov eax, edx
sbb edi, dword [esp + 0x5c]
sub ecx, dword [esp + 0x2c]
mov edx, edi
call fcn.101a29f0
or ebx, eax
or esi, edx
mov dword [esp + 0x1c], esi
mov ecx, dword [esp + 0x2c]
xor esi, esi
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x40]
mov dword [esp + 0x28], ebx
mov ebx, dword [esp + 0x18]
lea ecx, [ecx + 0x19]
shr ebx, cl
mov ecx, dword [esp + 0x50]
call fcn.101a29f0
or ebx, eax
or esi, edx
cmp dword [esp + 0x34], 0x15
mov dword [esp + 0x18], ebx
ja 0x1001bb83
mov eax, 0xcccccccd
xor edi, edi
mul dword [esp + 0x60]
mov eax, 0xcccccccd
mov ecx, edx
mul dword [esp + 0x64]
add ecx, eax
mov eax, 0xcccccccc
adc edi, edx
mul dword [esp + 0x60]
add eax, ecx
mov ebx, edx
mov eax, 0xcccccccc
adc ebx, 0
xor ecx, ecx
add ebx, edi
mov edi, dword [esp + 0x64]
adc ecx, ecx
mul edi
add ebx, eax
adc ecx, edx
mov edx, dword [esp + 0x60]
shrd ebx, ecx, 2
mov ecx, edx
lea eax, [ebx + ebx*4]
sub ecx, eax
mov ecx, dword [esp + 0x34]
jne 0x1001bb5d
push edi
push edx
call fcn.1001a4a0
add esp, 8
mov byte [esp + 0x15], al
mov dword [esp + 0x24], 0
mov byte [esp + 0x16], 0
jmp 0x1001bba0
cmp byte [esp + 0x17], 0
je 0x1001bcee
sub edx, dword [esp + 0x38]
sbb edi, 0
add edx, 0xffffffff
adc edi, 0xffffffff
push edi
push edx
call fcn.1001a4a0
add esp, 8
mov byte [esp + 0x14], al
mov al, byte [esp + 0x15]
mov cl, byte [esp + 0x14]
mov dword [esp + 0x24], 0
mov byte [esp + 0x16], 0
test cl, cl
jne 0x1001c1b4
test al, al
jne 0x1001c1b4
mov ebx, ebp
mov byte [esp + 0x17], 0
mov ebp, dword [esp + 0x20]
mov eax, 0x5c28f5c3
shrd ebx, ebp, 2
xor edi, edi
mul ebx
shr ebp, 2
mov eax, 0x5c28f5c3
mov ecx, edx
mul ebp
add ecx, eax
mov eax, 0x28f5c28f
adc edi, edx
mul ebx
add eax, ecx
mov ebx, edx
mov eax, 0x28f5c28f
adc ebx, 0
xor ecx, ecx
add ebx, edi
adc ecx, ecx
mul ebp
mov ebp, dword [esp + 0x1c]
add ebx, eax
mov eax, 0x5c28f5c3
adc ecx, edx
xor edi, edi
shrd ebx, ecx, 2
mov dword [esp + 0x64], ebx
mov ebx, dword [esp + 0x28]
shrd ebx, ebp, 2
shr ecx, 2
mul ebx
mov dword [esp + 0x60], ecx
mov eax, 0x5c28f5c3
shr ebp, 2
mov ecx, edx
mul ebp
add ecx, eax
mov eax, 0x28f5c28f
adc edi, edx
mul ebx
add eax, ecx
mov ebx, edx
mov eax, 0x28f5c28f
adc ebx, 0
xor ecx, ecx
add ebx, edi
adc ecx, ecx
mul ebp
add ebx, eax
adc ecx, edx
shrd ebx, ecx, 2
shr ecx, 2
mov dword [esp + 0x78], ebx
mov dword [esp + 0x70], ecx
cmp dword [esp + 0x60], ecx
jb 0x1001c588
ja 0x1001bc67
cmp dword [esp + 0x64], ebx
jbe 0x1001c588
mov ebx, dword [esp + 0x18]
mov eax, 0x5c28f5c3
shrd ebx, esi, 2
xor edi, edi
mov dword [esp + 0x24], 2
mul ebx
shr esi, 2
mov eax, 0x5c28f5c3
mov ebp, esi
mov ecx, edx
mul ebp
add ecx, eax
mov eax, 0x28f5c28f
adc edi, edx
mul ebx
add eax, ecx
mov ebx, edx
mov ecx, dword [esp + 0x18]
mov eax, 0x28f5c28f
adc ebx, 0
xor esi, esi
add ebx, edi
adc esi, esi
mul ebp
mov ebp, dword [esp + 0x78]
add ebx, eax
adc esi, edx
shrd ebx, esi, 2
imul eax, ebx, 0x64
shr esi, 2
mov dword [esp + 0x18], ebx
sub ecx, eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x30], eax
cmp ecx, 0x32
mov eax, dword [esp + 0x60]
mov dword [esp + 0x20], eax
setae byte [esp + 0x17]
mov eax, dword [esp + 0x70]
mov dword [esp + 0x1c], eax
jmp 0x1001c590
add edx, 2
adc edi, 0
push edi
push edx
call fcn.1001a4a0
movzx eax, al
add esp, 8
cdq
sub ebp, eax
mov dword [esp + 0x30], ebp
sbb dword [esp + 0x20], edx
jmp 0x1001bb83
xor ecx, ecx
mov eax, ebx
neg eax
mov ebp, 0x101bd980
cmp eax, 1
setg cl
imul edi, ebx, 0xfff4d105
shr edi, 0x14
sub edi, ecx
add ebx, edi
mov dword [esp + 0x78], edi
imul eax, ebx, 0xffed6cb1
mov dword [esp + 0x34], ebx
shr eax, 0x13
sub edi, eax
mov eax, ebx
shl eax, 4
sub ebp, eax
mov dword [esp + 0x24], edi
mov edi, dword [ebp]
mov eax, dword [ebp + 4]
mov dword [esp + 0x44], eax
mov eax, edi
mul edx
mov dword [esp + 0x48], edi
mov ebx, eax
mov ecx, edx
mov eax, edi
mul esi
mov esi, eax
mov edi, edx
mov eax, dword [ebp + 4]
add esi, ecx
adc edi, 0
mul dword [esp + 0x40]
add eax, esi
mov ecx, edx
mov dword [esp + 0x2c], eax
mov eax, dword [ebp + 4]
adc ecx, 0
mul dword [esp + 0x3c]
mov dword [esp + 0x50], eax
mov eax, edx
mov edx, dword [esp + 0x50]
add edx, ecx
adc eax, 0
add edx, edi
mov edi, dword [ebp + 8]
adc eax, 0
mov dword [esp + 0x50], edx
mov dword [esp + 0x68], eax
xor eax, eax
or eax, ebx
mov dword [esp + 0x1c], edi
mov dword [esp + 0x4c], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x28], eax
mov eax, edi
mul dword [esp + 0x40]
mov ebx, eax
mov ecx, edx
mov eax, edi
mul dword [esp + 0x3c]
mov esi, eax
mov edi, edx
mov eax, dword [esp + 0x28]
add esi, ecx
adc edi, 0
mul dword [esp + 0x40]
add eax, esi
mov ecx, edx
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x28]
adc ecx, 0
mul dword [esp + 0x3c]
mov ebp, eax
add ebp, ecx
adc edx, 0
add ebp, edi
adc edx, 0
xor esi, esi
mov ecx, dword [esp + 0x50]
or esi, ebx
mov ebx, dword [esp + 0x18]
add esi, ecx
mov dword [esp + 0x70], esi
adc ebx, dword [esp + 0x68]
mov dword [esp + 0x18], ebx
cmp ebx, dword [esp + 0x68]
ja 0x1001be2a
jb 0x1001be21
cmp esi, ecx
jae 0x1001be2a
mov eax, 1
xor ecx, ecx
jmp 0x1001be3b
xorps xmm0, xmm0
movlpd qword [esp + 0x68], xmm0
mov ecx, dword [esp + 0x6c]
mov eax, dword [esp + 0x68]
add ebp, eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x40], ebp
adc edx, ecx
mov ecx, dword [esp + 0x4c]
mov edi, ecx
mov dword [esp + 0x3c], edx
add edi, dword [esp + 0x48]
adc eax, dword [esp + 0x44]
cmp eax, dword [esp + 0x2c]
ja 0x1001be6e
jb 0x1001be65
cmp edi, ecx
jae 0x1001be6e
mov ecx, 1
xor edx, edx
jmp 0x1001be7f
xorps xmm0, xmm0
movlpd qword [esp + 0x68], xmm0
mov edx, dword [esp + 0x6c]
mov ecx, dword [esp + 0x68]
mov eax, esi
mov ebp, ebx
add eax, dword [esp + 0x1c]
adc ebp, dword [esp + 0x28]
add eax, ecx
adc ebp, edx
cmp ebp, ebx
ja 0x1001bea8
jb 0x1001be99
cmp eax, esi
jae 0x1001bea8
mov edx, 1
mov dword [esp + 0x50], 0
jmp 0x1001bebd
xorps xmm0, xmm0
movlpd qword [esp + 0x68], xmm0
mov eax, dword [esp + 0x6c]
mov edx, dword [esp + 0x68]
mov dword [esp + 0x50], eax
mov edi, dword [esp + 0x24]
mov eax, 9
sub eax, edi
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x40]
lea ecx, [edi + 0x17]
xor edi, edi
shr ebp, cl
add eax, edx
mov edx, dword [esp + 0x3c]
adc edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x5c]
call fcn.101a29f0
or ebp, eax
or edi, edx
cmp dword [esp + 0x38], 1
mov dword [esp + 0x30], ebp
mov dword [esp + 0x20], edi
jne 0x1001bf9e
mov ecx, dword [esp + 0x4c]
mov edi, ecx
sub edi, dword [esp + 0x48]
mov eax, dword [esp + 0x2c]
sbb eax, dword [esp + 0x44]
cmp eax, dword [esp + 0x2c]
jb 0x1001bf28
ja 0x1001bf1f
cmp edi, ecx
jbe 0x1001bf28
mov ecx, 1
xor edx, edx
jmp 0x1001bf39
xorps xmm0, xmm0
movlpd qword [esp + 0x70], xmm0
mov edx, dword [esp + 0x74]
mov ecx, dword [esp + 0x70]
mov eax, esi
sub eax, dword [esp + 0x1c]
sbb ebx, dword [esp + 0x28]
sub eax, ecx
sbb ebx, edx
cmp ebx, dword [esp + 0x18]
jb 0x1001bf5c
ja 0x1001bf53
cmp eax, esi
jbe 0x1001bf5c
mov edx, 1
xor esi, esi
jmp 0x1001bf6d
xorps xmm0, xmm0
movlpd qword [esp + 0x70], xmm0
mov esi, dword [esp + 0x74]
mov edx, dword [esp + 0x70]
mov ecx, dword [esp + 0x24]
xor edi, edi
mov eax, dword [esp + 0x40]
lea ecx, [ecx + 0x17]
shr ebx, cl
sub eax, edx
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x5c]
sbb edx, esi
call fcn.101a29f0
or ebx, eax
or edi, edx
mov dword [esp + 0x1c], edi
mov edi, dword [esp + 0x20]
jmp 0x1001c10b
mov eax, dword [esp + 0x4c]
mov esi, eax
mov edx, dword [esp + 0x2c]
shld edx, esi, 1
add esi, esi
mov dword [esp + 0x68], edx
cmp edx, dword [esp + 0x2c]
ja 0x1001bfd0
jb 0x1001bfbe
cmp esi, eax
jae 0x1001bfd0
mov dword [esp + 0x50], 1
mov dword [esp + 0x4c], 0
jmp 0x1001bfe9
xorps xmm0, xmm0
movlpd qword [esp + 0x50], xmm0
mov eax, dword [esp + 0x54]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x50], eax
mov edx, dword [esp + 0x70]
mov eax, ebx
mov ecx, edx
shld eax, ecx, 1
add ecx, ecx
add ecx, dword [esp + 0x50]
adc eax, dword [esp + 0x4c]
mov dword [esp + 0x2c], eax
cmp eax, ebx
ja 0x1001c01c
jb 0x1001c00d
cmp ecx, edx
jae 0x1001c01c
mov ebx, 1
mov dword [esp + 0x50], 0
jmp 0x1001c031
xorps xmm0, xmm0
movlpd qword [esp + 0x70], xmm0
mov eax, dword [esp + 0x74]
mov ebx, dword [esp + 0x70]
mov dword [esp + 0x50], eax
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x3c]
shld eax, edx, 1
add edx, edx
add edx, ebx
adc eax, dword [esp + 0x50]
mov dword [esp + 0x50], eax
mov eax, esi
sub eax, dword [esp + 0x48]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x68]
sbb eax, dword [esp + 0x44]
cmp eax, dword [esp + 0x68]
jb 0x1001c07b
ja 0x1001c069
cmp dword [esp + 0x70], esi
jbe 0x1001c07b
mov dword [esp + 0x4c], 1
mov dword [esp + 0x48], 0
jmp 0x1001c094
xorps xmm0, xmm0
movlpd qword [esp + 0x70], xmm0
mov eax, dword [esp + 0x74]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x4c], eax
mov ebx, dword [esp + 0x2c]
mov esi, ecx
sub esi, dword [esp + 0x1c]
sbb ebx, dword [esp + 0x28]
sub esi, dword [esp + 0x4c]
sbb ebx, dword [esp + 0x48]
cmp ebx, dword [esp + 0x2c]
jb 0x1001c0c5
ja 0x1001c0b6
cmp esi, ecx
jbe 0x1001c0c5
mov eax, 1
mov dword [esp + 0x4c], 0
jmp 0x1001c0da
xorps xmm0, xmm0
movlpd qword [esp + 0x70], xmm0
mov eax, dword [esp + 0x74]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x24]
xor esi, esi
add ecx, 0x18
shr ebx, cl
sub edx, eax
mov eax, dword [esp + 0x4c]
mov ecx, 8
sbb dword [esp + 0x50], eax
mov eax, edx
sub ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x50]
call fcn.101a29f0
or ebx, eax
or esi, edx
mov dword [esp + 0x1c], esi
mov ecx, dword [esp + 0x24]
xor esi, esi
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x28], ebx
mov ebx, dword [esp + 0x18]
lea ecx, [ecx + 0x17]
shr ebx, cl
mov ecx, dword [esp + 0x5c]
call fcn.101a29f0
or ebx, eax
or esi, edx
mov eax, dword [esp + 0x78]
mov dword [esp + 0x18], ebx
cmp eax, 1
ja 0x1001c16d
cmp byte [esp + 0x17], 0
mov al, 1
mov byte [esp + 0x15], al
je 0x1001c15a
mov cl, byte [esp + 0x38]
mov byte [esp + 0x14], cl
jmp 0x1001bb8b
add ebp, 0xffffffff
mov dword [esp + 0x30], ebp
adc edi, 0xffffffff
mov dword [esp + 0x20], edi
jmp 0x1001bb87
cmp eax, 0x3f
jae 0x1001bb83
xor edx, edx
mov dword [esp + 0x24], 0
xor ecx, ecx
dec eax
bts edx, eax
cmp eax, 0x20
cmovae ecx, edx
xor edx, ecx
cmp eax, 0x40
cmovae ecx, edx
add edx, 0xffffffff
adc ecx, 0xffffffff
and edx, dword [esp + 0x60]
and ecx, dword [esp + 0x64]
or edx, ecx
jne 0x1001bba8
mov byte [esp + 0x15], 1
mov byte [esp + 0x16], 0
mov eax, 0xcccccccd
xor edi, edi
mul ebp
mov eax, 0xcccccccd
mov ecx, edx
mul dword [esp + 0x20]
add ecx, eax
mov eax, 0xcccccccc
adc edi, edx
mul ebp
mov ebp, dword [esp + 0x28]
add eax, ecx
mov ebx, edx
mov eax, 0xcccccccc
adc ebx, 0
xor ecx, ecx
mul dword [esp + 0x20]
add ebx, eax
mov eax, 0xcccccccd
adc ecx, edx
add ebx, edi
adc ecx, 0
xor edi, edi
mul ebp
shrd ebx, ecx, 3
mov eax, 0xcccccccd
shr ecx, 3
mov dword [esp + 0x40], ecx
mov ecx, edx
mov dword [esp + 0x2c], ebx
mov ebx, dword [esp + 0x1c]
mul ebx
add ecx, eax
mov eax, 0xcccccccc
adc edi, edx
mul ebp
add eax, ecx
mov dword [esp + 0x20], edx
mov ecx, edx
mov eax, 0xcccccccc
adc ecx, 0
mul ebx
add ecx, eax
mov eax, 0
adc eax, edx
add ecx, edi
adc eax, 0
shrd ecx, eax, 3
shr eax, 3
mov dword [esp + 0x20], ecx
mov dword [esp + 0x64], eax
cmp dword [esp + 0x40], eax
jb 0x1001c3cd
ja 0x1001c270
cmp dword [esp + 0x2c], ecx
jbe 0x1001c3cd
nop word [eax + eax]
mov eax, 0xcccccccd
mov ebx, esi
mul dword [esp + 0x18]
xor edi, edi
mov eax, 0xcccccccd
mov ecx, edx
mul ebx
add ecx, eax
mov eax, 0xcccccccc
adc edi, edx
mul dword [esp + 0x18]
add eax, ecx
mov eax, 0xcccccccc
adc edx, 0
xor esi, esi
mov dword [esp + 0x78], edx
mul ebx
mov ebx, dword [esp + 0x78]
add ebx, eax
movzx eax, byte [esp + 0x14]
adc esi, edx
add ebx, edi
mov edi, dword [esp + 0x20]
adc esi, 0
xor edx, edx
shrd ebx, esi, 3
shr esi, 3
lea ecx, [edi + edi*4]
add ecx, ecx
cmp ebp, ecx
mov ebp, edi
cmove edx, eax
movzx eax, byte [esp + 0x15]
xor ecx, ecx
mov byte [esp + 0x14], dl
cmp byte [esp + 0x16], cl
cmove ecx, eax
inc dword [esp + 0x24]
mov byte [esp + 0x15], cl
mov al, bl
shl al, 2
mov cl, bl
add cl, al
xor edi, edi
mov al, byte [esp + 0x18]
add cl, cl
sub al, cl
mov dword [esp + 0x18], ebx
mov byte [esp + 0x16], al
mov eax, dword [esp + 0x64]
mov dword [esp + 0x1c], eax
mov eax, 0xcccccccd
mul dword [esp + 0x2c]
mov eax, 0xcccccccd
mov ecx, edx
mul dword [esp + 0x40]
add ecx, eax
mov eax, 0xcccccccc
adc edi, edx
mul dword [esp + 0x2c]
add eax, ecx
mov dword [esp + 0x2c], edx
mov ecx, edx
mov eax, 0xcccccccc
adc ecx, 0
mul dword [esp + 0x40]
add ecx, eax
mov eax, 0
adc eax, edx
add ecx, edi
adc eax, 0
xor edi, edi
shrd ecx, eax, 3
shr eax, 3
mov dword [esp + 0x40], eax
mov eax, 0xcccccccd
mul ebp
mov dword [esp + 0x2c], ecx
mov eax, 0xcccccccd
mov ecx, edx
mul dword [esp + 0x64]
add ecx, eax
mov eax, 0xcccccccc
adc edi, edx
mul ebp
add eax, ecx
mov dword [esp + 0x20], edx
mov ecx, edx
mov eax, 0xcccccccc
adc ecx, 0
mul dword [esp + 0x64]
add ecx, eax
mov eax, 0
adc eax, edx
add ecx, edi
adc eax, 0
shrd ecx, eax, 3
shr eax, 3
mov dword [esp + 0x20], ecx
mov dword [esp + 0x64], eax
cmp dword [esp + 0x40], eax
ja 0x1001c270
jb 0x1001c3c5
cmp dword [esp + 0x2c], ecx
ja 0x1001c270
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x28], ebp
mov dl, byte [esp + 0x14]
test dl, dl
je 0x1001c528
mov eax, 0xcccccccd
xor edi, edi
mul ebp
mov eax, 0xcccccccd
mov ecx, edx
mul ebx
add ecx, eax
mov eax, 0xcccccccc
adc edi, edx
mul ebp
add eax, ecx
mov ebx, edx
mov eax, 0xcccccccc
adc ebx, 0
xor ecx, ecx
mul dword [esp + 0x1c]
add ebx, eax
mov eax, ebp
adc ecx, edx
add ebx, edi
adc ecx, 0
shrd ebx, ecx, 3
shr ecx, 3
mov dword [esp + 0x60], ecx
mov dword [esp + 0x40], ebx
lea ecx, [ebx + ebx*4]
add ecx, ecx
sub eax, ecx
jne 0x1001c524
mov ebp, ebx
mov dword [esp + 0x5c], ebp
mov eax, 0xcccccccd
mov ebx, esi
mul dword [esp + 0x18]
xor edi, edi
mov eax, 0xcccccccd
mov ecx, edx
mul ebx
add ecx, eax
mov eax, 0xcccccccc
adc edi, edx
mul dword [esp + 0x18]
add eax, ecx
mov dword [esp + 0x64], edx
mov ecx, edx
mov eax, 0xcccccccc
adc ecx, 0
xor esi, esi
mul ebx
add ecx, eax
adc esi, edx
add ecx, edi
adc esi, 0
shrd ecx, esi, 3
shr esi, 3
cmp byte [esp + 0x16], 0
mov dword [esp + 0x64], ecx
sete al
mov edx, dword [esp + 0x64]
and byte [esp + 0x15], al
xor edi, edi
mov al, cl
inc dword [esp + 0x24]
shl al, 2
add cl, al
mov al, byte [esp + 0x18]
add cl, cl
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x40]
sub al, cl
mov byte [esp + 0x16], al
mov ecx, edx
mov eax, dword [esp + 0x60]
mov ebx, eax
mov dword [esp + 0x1c], eax
mov eax, 0xcccccccd
mov dword [esp + 0x28], edx
mul ecx
mov eax, 0xcccccccd
mov ecx, edx
mul ebx
add ecx, eax
mov eax, 0xcccccccc
adc edi, edx
mul dword [esp + 0x5c]
add eax, ecx
mov dword [esp + 0x40], edx
mov ecx, edx
adc ecx, 0
xor eax, eax
mov eax, 0xcccccccc
mul ebx
add ecx, eax
mov eax, 0
adc eax, edx
add ecx, edi
adc eax, 0
shrd ecx, eax, 3
shr eax, 3
mov dword [esp + 0x60], eax
mov eax, ecx
mov dword [esp + 0x5c], eax
mov dword [esp + 0x40], ecx
lea eax, [eax + eax*4]
add eax, eax
sub ebp, eax
mov ebp, ecx
je 0x1001c435
mov dl, byte [esp + 0x14]
cmp byte [esp + 0x15], 0
mov cl, byte [esp + 0x16]
je 0x1001c546
cmp cl, 5
jne 0x1001c546
mov eax, dword [esp + 0x18]
and eax, 1
or eax, 0
jne 0x1001c546
mov cl, 4
mov eax, dword [esp + 0x18]
cmp eax, dword [esp + 0x28]
jne 0x1001c569
cmp esi, dword [esp + 0x1c]
jne 0x1001c569
cmp byte [esp + 0x17], 0
je 0x1001c79e
test dl, dl
je 0x1001c79e
cmp cl, 5
jae 0x1001c79e
xorps xmm0, xmm0
movlpd qword [esp + 0x78], xmm0
mov edi, dword [esp + 0x7c]
mov edx, dword [esp + 0x78]
jmp 0x1001c7a5
mov ebx, dword [esp + 0x18]
mov ebp, dword [esp + 0x28]
mov eax, 0xcccccccd
xor edi, edi
mul dword [esp + 0x30]
mov eax, 0xcccccccd
mov ecx, edx
mul dword [esp + 0x20]
add ecx, eax
mov eax, 0xcccccccc
adc edi, edx
mul dword [esp + 0x30]
add eax, ecx
mov dword [esp + 0x28], edx
mov ecx, edx
mov eax, 0xcccccccc
adc ecx, 0
mul dword [esp + 0x20]
add ecx, eax
mov eax, 0
adc eax, edx
add ecx, edi
adc eax, 0
xor edi, edi
shrd ecx, eax, 3
shr eax, 3
mov dword [esp + 0x40], eax
mov eax, 0xcccccccd
mul ebp
mov dword [esp + 0x28], ecx
mov eax, 0xcccccccd
mov ecx, edx
mul dword [esp + 0x1c]
add ecx, eax
mov eax, 0xcccccccc
adc edi, edx
mul ebp
add eax, ecx
mov dword [esp + 0x20], edx
mov ecx, edx
mov eax, 0xcccccccc
adc ecx, 0
mul dword [esp + 0x1c]
add ecx, eax
mov eax, 0
adc eax, edx
add ecx, edi
adc eax, 0
shrd ecx, eax, 3
shr eax, 3
mov dword [esp + 0x20], ecx
mov dword [esp + 0x64], eax
cmp dword [esp + 0x40], eax
jb 0x1001c776
ja 0x1001c650
cmp dword [esp + 0x28], ecx
jbe 0x1001c776
nop word [eax + eax]
mov ebp, ebx
xor edi, edi
mov eax, 0xcccccccd
mov ebx, esi
mul ebp
mov eax, 0xcccccccd
mov ecx, edx
mul ebx
add ecx, eax
mov eax, 0xcccccccc
adc edi, edx
mul ebp
add eax, ecx
mov dword [esp + 0x18], edx
mov ecx, edx
mov eax, 0xcccccccc
adc ecx, 0
xor esi, esi
mul ebx
add ecx, eax
adc esi, edx
add ecx, edi
adc esi, 0
shrd ecx, esi, 3
shr esi, 3
mov dword [esp + 0x18], ecx
lea eax, [ecx + ecx*4]
add eax, eax
sub ebp, eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x1c], eax
cmp ebp, 5
mov eax, 0xcccccccd
mov ebp, dword [esp + 0x20]
setae byte [esp + 0x17]
inc dword [esp + 0x24]
mul dword [esp + 0x28]
xor edi, edi
mov eax, 0xcccccccd
mov ecx, edx
mul dword [esp + 0x40]
add ecx, eax
mov eax, 0xcccccccc
adc edi, edx
mul dword [esp + 0x28]
add eax, ecx
mov dword [esp + 0x28], edx
mov ecx, edx
mov eax, 0xcccccccc
adc ecx, 0
mul dword [esp + 0x40]
add ecx, eax
mov eax, 0
adc eax, edx
add ecx, edi
adc eax, 0
xor edi, edi
shrd ecx, eax, 3
shr eax, 3
mov dword [esp + 0x40], eax
mov eax, 0xcccccccd
mul ebp
mov dword [esp + 0x28], ecx
mov eax, 0xcccccccd
mov ecx, edx
mul dword [esp + 0x64]
add ecx, eax
mov eax, 0xcccccccc
adc edi, edx
mul ebp
add eax, ecx
mov dword [esp + 0x20], edx
mov ecx, edx
mov eax, 0xcccccccc
adc ecx, 0
mul dword [esp + 0x64]
add ecx, eax
mov eax, 0
adc eax, edx
add ecx, edi
adc eax, 0
mov ebx, dword [esp + 0x18]
shrd ecx, eax, 3
shr eax, 3
mov dword [esp + 0x20], ecx
mov dword [esp + 0x64], eax
cmp dword [esp + 0x40], eax
ja 0x1001c650
jb 0x1001c776
cmp dword [esp + 0x28], ecx
ja 0x1001c650
mov eax, dword [esp + 0x18]
cmp eax, ebp
jne 0x1001c784
cmp esi, dword [esp + 0x1c]
je 0x1001c79e
cmp byte [esp + 0x17], 0
jne 0x1001c79e
xorps xmm0, xmm0
movlpd qword [esp + 0x78], xmm0
mov edi, dword [esp + 0x7c]
mov edx, dword [esp + 0x78]
jmp 0x1001c7a5
mov edx, 1
xor edi, edi
mov ecx, dword [esp + 0x34]
add edx, eax
mov eax, dword [esp + 0x84]
adc edi, esi
add ecx, dword [esp + 0x24]
mov dword [eax + 4], edi
pop edi
pop esi
pop ebp
mov dword [eax + 8], ecx
mov dword [eax], edx
pop ebx
add esp, 0x70
ret