Function at 0x1001b6c0
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 0x1001b6e9
mov dword [esp + 0x5c], 0xfffffbcc
jmp 0x1001b6f9
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 0x1001b70d
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 0x1001b72d
mov dword [esp + 0x38], edi
cmp ebp, 1
ja 0x1001b735
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 0x1001bd61
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 0x1001b86a
jb 0x1001b861
cmp edi, ecx
jae 0x1001b86a
mov eax, 1
xor ecx, ecx
jmp 0x1001b87b
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 0x1001b8ae
jb 0x1001b8a5
cmp esi, edx
jae 0x1001b8ae
mov eax, 1
xor ebp, ebp
jmp 0x1001b8bf
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 0x1001b8de
jb 0x1001b8d5
cmp eax, edi
jae 0x1001b8de
mov eax, 1
xor edx, edx
jmp 0x1001b8ef
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.101a2760
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 0x1001b9c6
mov edx, dword [esp + 0x1c]
mov esi, edx
sub esi, dword [esp + 0x44]
sbb eax, dword [esp + 0x48]
cmp eax, dword [esp + 0x28]
jb 0x1001b954
ja 0x1001b94b
cmp esi, edx
jbe 0x1001b954
mov ecx, 1
xor edx, edx
jmp 0x1001b965
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 0x1001b988
ja 0x1001b97f
cmp eax, edi
jbe 0x1001b988
mov edx, 1
xor esi, esi
jmp 0x1001b999
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.101a2760
or ebx, eax
or edi, edx
mov dword [esp + 0x1c], edi
jmp 0x1001bb05
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 0x1001b9eb
jb 0x1001b9e2
cmp esi, ecx
jae 0x1001b9eb
mov eax, 1
xor edx, edx
jmp 0x1001b9fc
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 0x1001ba25
jb 0x1001ba16
cmp ecx, dword [esp + 0x68]
jae 0x1001ba25
mov ebx, 1
mov dword [esp + 0x5c], 0
jmp 0x1001ba3a
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 0x1001ba81
ja 0x1001ba72
cmp dword [esp + 0x68], esi
jbe 0x1001ba81
mov esi, 1
mov dword [esp + 0x5c], 0
jmp 0x1001ba96
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 0x1001bac1
ja 0x1001bab2
cmp eax, ecx
jbe 0x1001bac1
mov eax, 1
mov dword [esp + 0x5c], 0
jmp 0x1001bad6
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.101a2760
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.101a2760
or ebx, eax
or esi, edx
cmp dword [esp + 0x34], 0x15
mov dword [esp + 0x18], ebx
ja 0x1001bbd3
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 0x1001bbad
push edi
push edx
call fcn.1001a4f0
add esp, 8
mov byte [esp + 0x15], al
mov dword [esp + 0x24], 0
mov byte [esp + 0x16], 0
jmp 0x1001bbf0
cmp byte [esp + 0x17], 0
je 0x1001bd3e
sub edx, dword [esp + 0x38]
sbb edi, 0
add edx, 0xffffffff
adc edi, 0xffffffff
push edi
push edx
call fcn.1001a4f0
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 0x1001c204
test al, al
jne 0x1001c204
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 0x1001c5d8
ja 0x1001bcb7
cmp dword [esp + 0x64], ebx
jbe 0x1001c5d8
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 0x1001c5e0
add edx, 2
adc edi, 0
push edi
push edx
call fcn.1001a4f0
movzx eax, al
add esp, 8
cdq
sub ebp, eax
mov dword [esp + 0x30], ebp
sbb dword [esp + 0x20], edx
jmp 0x1001bbd3
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 0x1001be7a
jb 0x1001be71
cmp esi, ecx
jae 0x1001be7a
mov eax, 1
xor ecx, ecx
jmp 0x1001be8b
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 0x1001bebe
jb 0x1001beb5
cmp edi, ecx
jae 0x1001bebe
mov ecx, 1
xor edx, edx
jmp 0x1001becf
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 0x1001bef8
jb 0x1001bee9
cmp eax, esi
jae 0x1001bef8
mov edx, 1
mov dword [esp + 0x50], 0
jmp 0x1001bf0d
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.101a2760
or ebp, eax
or edi, edx
cmp dword [esp + 0x38], 1
mov dword [esp + 0x30], ebp
mov dword [esp + 0x20], edi
jne 0x1001bfee
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 0x1001bf78
ja 0x1001bf6f
cmp edi, ecx
jbe 0x1001bf78
mov ecx, 1
xor edx, edx
jmp 0x1001bf89
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 0x1001bfac
ja 0x1001bfa3
cmp eax, esi
jbe 0x1001bfac
mov edx, 1
xor esi, esi
jmp 0x1001bfbd
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.101a2760
or ebx, eax
or edi, edx
mov dword [esp + 0x1c], edi
mov edi, dword [esp + 0x20]
jmp 0x1001c15b
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 0x1001c020
jb 0x1001c00e
cmp esi, eax
jae 0x1001c020
mov dword [esp + 0x50], 1
mov dword [esp + 0x4c], 0
jmp 0x1001c039
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 0x1001c06c
jb 0x1001c05d
cmp ecx, edx
jae 0x1001c06c
mov ebx, 1
mov dword [esp + 0x50], 0
jmp 0x1001c081
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 0x1001c0cb
ja 0x1001c0b9
cmp dword [esp + 0x70], esi
jbe 0x1001c0cb
mov dword [esp + 0x4c], 1
mov dword [esp + 0x48], 0
jmp 0x1001c0e4
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 0x1001c115
ja 0x1001c106
cmp esi, ecx
jbe 0x1001c115
mov eax, 1
mov dword [esp + 0x4c], 0
jmp 0x1001c12a
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.101a2760
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.101a2760
or ebx, eax
or esi, edx
mov eax, dword [esp + 0x78]
mov dword [esp + 0x18], ebx
cmp eax, 1
ja 0x1001c1bd
cmp byte [esp + 0x17], 0
mov al, 1
mov byte [esp + 0x15], al
je 0x1001c1aa
mov cl, byte [esp + 0x38]
mov byte [esp + 0x14], cl
jmp 0x1001bbdb
add ebp, 0xffffffff
mov dword [esp + 0x30], ebp
adc edi, 0xffffffff
mov dword [esp + 0x20], edi
jmp 0x1001bbd7
cmp eax, 0x3f
jae 0x1001bbd3
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 0x1001bbf8
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 0x1001c41d
ja 0x1001c2c0
cmp dword [esp + 0x2c], ecx
jbe 0x1001c41d
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 0x1001c2c0
jb 0x1001c415
cmp dword [esp + 0x2c], ecx
ja 0x1001c2c0
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x28], ebp
mov dl, byte [esp + 0x14]
test dl, dl
je 0x1001c578
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 0x1001c574
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 0x1001c485
mov dl, byte [esp + 0x14]
cmp byte [esp + 0x15], 0
mov cl, byte [esp + 0x16]
je 0x1001c596
cmp cl, 5
jne 0x1001c596
mov eax, dword [esp + 0x18]
and eax, 1
or eax, 0
jne 0x1001c596
mov cl, 4
mov eax, dword [esp + 0x18]
cmp eax, dword [esp + 0x28]
jne 0x1001c5b9
cmp esi, dword [esp + 0x1c]
jne 0x1001c5b9
cmp byte [esp + 0x17], 0
je 0x1001c7ee
test dl, dl
je 0x1001c7ee
cmp cl, 5
jae 0x1001c7ee
xorps xmm0, xmm0
movlpd qword [esp + 0x78], xmm0
mov edi, dword [esp + 0x7c]
mov edx, dword [esp + 0x78]
jmp 0x1001c7f5
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 0x1001c7c6
ja 0x1001c6a0
cmp dword [esp + 0x28], ecx
jbe 0x1001c7c6
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 0x1001c6a0
jb 0x1001c7c6
cmp dword [esp + 0x28], ecx
ja 0x1001c6a0
mov eax, dword [esp + 0x18]
cmp eax, ebp
jne 0x1001c7d4
cmp esi, dword [esp + 0x1c]
je 0x1001c7ee
cmp byte [esp + 0x17], 0
jne 0x1001c7ee
xorps xmm0, xmm0
movlpd qword [esp + 0x78], xmm0
mov edi, dword [esp + 0x7c]
mov edx, dword [esp + 0x78]
jmp 0x1001c7f5
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