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

Disassembly:
sub esp, 0x68
push ebx
mov ebx, dword [esp + 0x78]
push ebp
mov ebp, dword [esp + 0x80]
push esi
mov esi, ebx
push edi
mov edi, dword [esp + 0x80]
mov edx, edi
test ebp, ebp
jne 0x1000f7eb
mov dword [esp + 0x58], 0xfffffbcc
jmp 0x1000f7fb
lea eax, [ebp - 0x435]
or esi, 0x100000
mov dword [esp + 0x58], eax
mov eax, edx
mov byte [esp + 0x13], 1
and eax, 1
or eax, 0
je 0x1000f80f
mov byte [esp + 0x13], 0
mov eax, edx
mov ecx, esi
shld ecx, eax, 2
shl eax, 2
or edi, ebx
mov dword [esp + 0x60], ecx
mov dword [esp + 0x64], eax
jne 0x1000f82f
mov dword [esp + 0x38], edi
cmp ebp, 1
ja 0x1000f837
mov dword [esp + 0x38], 1
mov ebx, dword [esp + 0x58]
xor al, al
shld esi, edx, 1
mov byte [esp + 0x88], 0
add edx, edx
mov byte [esp + 0x80], al
mov dword [esp + 0x1c], esi
mov dword [esp + 0x24], edx
test ebx, ebx
js 0x1000fe46
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, 0x1005bd98
mov dword [esp + 0x30], ecx
shr eax, 0x13
sub eax, ebx
mov edi, dword [ebp]
add eax, ecx
mov dword [esp + 0x44], edi
mov dword [esp + 0x28], 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 + 0x24]
add eax, esi
mov ecx, edx
mov dword [esp + 0x20], eax
mov eax, dword [ebp + 4]
adc ecx, 0
mul dword [esp + 0x1c]
mov dword [esp + 0x3c], eax
mov eax, edx
mov edx, dword [esp + 0x3c]
add edx, ecx
adc eax, 0
add edx, edi
mov edi, dword [ebp + 8]
adc eax, 0
mov dword [esp + 0x3c], edx
mov dword [esp + 0x68], eax
xor eax, eax
or eax, ebx
mov dword [esp + 0x50], edi
mov dword [esp + 0x40], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x18], eax
mov eax, edi
mul dword [esp + 0x24]
mov ebx, eax
mov ecx, edx
mov eax, edi
mul dword [esp + 0x1c]
mov esi, eax
mov edi, edx
mov eax, dword [esp + 0x18]
add esi, ecx
adc edi, 0
mul dword [esp + 0x24]
add eax, esi
mov ecx, edx
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x18]
adc ecx, 0
mul dword [esp + 0x1c]
mov ebp, eax
add ebp, ecx
mov ecx, dword [esp + 0x3c]
adc edx, 0
add ebp, edi
adc edx, 0
xor esi, esi
or esi, ebx
mov ebx, dword [esp + 0x14]
add esi, ecx
adc ebx, dword [esp + 0x68]
mov dword [esp + 0x58], esi
cmp ebx, dword [esp + 0x68]
ja 0x1000f96e
jb 0x1000f965
cmp esi, ecx
jae 0x1000f96e
mov eax, 1
xor ecx, ecx
jmp 0x1000f97f
xorps xmm0, xmm0
movlpd qword [esp + 0x70], xmm0
mov ecx, dword [esp + 0x74]
mov eax, dword [esp + 0x70]
add ebp, eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x34], ebp
adc edx, ecx
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x40]
mov edi, edx
add edi, dword [esp + 0x44]
adc eax, dword [esp + 0x48]
cmp eax, dword [esp + 0x20]
ja 0x1000f9b2
jb 0x1000f9a9
cmp edi, edx
jae 0x1000f9b2
mov eax, 1
xor edi, edi
jmp 0x1000f9c3
xorps xmm0, xmm0
movlpd qword [esp + 0x70], xmm0
mov edi, dword [esp + 0x74]
mov eax, dword [esp + 0x70]
add eax, esi
adc edi, ebx
add eax, dword [esp + 0x50]
adc edi, dword [esp + 0x18]
cmp edi, ebx
ja 0x1000f9e2
jb 0x1000f9d9
cmp eax, esi
jae 0x1000f9e2
mov eax, 1
xor edx, edx
jmp 0x1000f9f3
xorps xmm0, xmm0
movlpd qword [esp + 0x70], xmm0
mov edx, dword [esp + 0x74]
mov eax, dword [esp + 0x70]
mov ebp, dword [esp + 0x28]
mov ecx, 7
sub ecx, ebp
mov dword [esp + 0x3c], ecx
lea ecx, [ebp + 0x19]
xor ebp, ebp
shr edi, cl
add eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x3c]
adc edx, dword [esp + 0x14]
call fcn.100453a0
or edi, eax
or ebp, edx
cmp dword [esp + 0x38], 1
mov dword [esp + 0x24], edi
mov dword [esp + 0x1c], ebp
jne 0x1000facc
mov edx, dword [esp + 0x40]
mov edi, edx
sub edi, dword [esp + 0x44]
mov eax, dword [esp + 0x20]
sbb eax, dword [esp + 0x48]
cmp eax, dword [esp + 0x20]
jb 0x1000fa58
ja 0x1000fa4f
cmp edi, edx
jbe 0x1000fa58
mov eax, 1
xor edx, edx
jmp 0x1000fa69
xorps xmm0, xmm0
movlpd qword [esp + 0x70], xmm0
mov edx, dword [esp + 0x74]
mov eax, dword [esp + 0x70]
mov ecx, esi
mov esi, ebx
sub ecx, eax
sbb esi, edx
sub ecx, dword [esp + 0x50]
sbb esi, dword [esp + 0x18]
cmp esi, ebx
jb 0x1000fa8e
ja 0x1000fa85
cmp ecx, dword [esp + 0x58]
jbe 0x1000fa8e
mov edx, 1
xor ebp, ebp
jmp 0x1000fa9f
xorps xmm0, xmm0
movlpd qword [esp + 0x70], xmm0
mov ebp, dword [esp + 0x74]
mov edx, dword [esp + 0x70]
mov ecx, dword [esp + 0x28]
xor edi, edi
mov eax, dword [esp + 0x34]
lea ecx, [ecx + 0x19]
shr esi, cl
sub eax, edx
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x3c]
sbb edx, ebp
call fcn.100453a0
or esi, eax
or edi, edx
mov dword [esp + 0x18], edi
jmp 0x1000fc12
mov ecx, dword [esp + 0x40]
mov esi, ecx
mov ebp, dword [esp + 0x20]
shld ebp, esi, 1
add esi, esi
cmp ebp, dword [esp + 0x20]
ja 0x1000faf7
jb 0x1000fae8
cmp esi, ecx
jae 0x1000faf7
mov edx, 1
mov dword [esp + 0x40], 0
jmp 0x1000fb0c
xorps xmm0, xmm0
movlpd qword [esp + 0x70], xmm0
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0x70]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x58]
mov edi, ebx
mov ecx, eax
shld edi, ecx, 1
add ecx, ecx
add ecx, edx
adc edi, dword [esp + 0x40]
cmp edi, ebx
ja 0x1000fb3c
jb 0x1000fb2a
cmp ecx, eax
jae 0x1000fb3c
mov dword [esp + 0x58], 1
mov dword [esp + 0x40], 0
jmp 0x1000fb55
xorps xmm0, xmm0
movlpd qword [esp + 0x70], xmm0
mov eax, dword [esp + 0x74]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x58], eax
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x14]
shld eax, edx, 1
add edx, edx
add edx, dword [esp + 0x58]
adc eax, dword [esp + 0x40]
mov dword [esp + 0x40], eax
mov eax, esi
sub eax, dword [esp + 0x44]
mov dword [esp + 0x68], eax
mov eax, ebp
sbb eax, dword [esp + 0x48]
cmp eax, ebp
jb 0x1000fb94
ja 0x1000fb8b
cmp dword [esp + 0x68], esi
jbe 0x1000fb94
mov esi, 1
xor ebp, ebp
jmp 0x1000fba5
xorps xmm0, xmm0
movlpd qword [esp + 0x70], xmm0
mov ebp, dword [esp + 0x74]
mov esi, dword [esp + 0x70]
mov eax, ecx
sub eax, esi
mov esi, edi
sbb esi, ebp
sub eax, dword [esp + 0x50]
sbb esi, dword [esp + 0x18]
cmp esi, edi
jb 0x1000fbce
ja 0x1000fbbf
cmp eax, ecx
jbe 0x1000fbce
mov eax, 1
mov dword [esp + 0x58], 0
jmp 0x1000fbe3
xorps xmm0, xmm0
movlpd qword [esp + 0x70], xmm0
mov eax, dword [esp + 0x74]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x28]
xor ebp, ebp
mov edi, dword [esp + 0x40]
add ecx, 0x1a
shr esi, cl
sub edx, eax
mov ecx, 6
mov eax, edx
sbb edi, dword [esp + 0x58]
sub ecx, dword [esp + 0x28]
mov edx, edi
call fcn.100453a0
or esi, eax
or ebp, edx
mov dword [esp + 0x18], ebp
mov ecx, dword [esp + 0x28]
xor ebp, ebp
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x14]
lea ecx, [ecx + 0x19]
shr ebx, cl
mov ecx, dword [esp + 0x3c]
call fcn.100453a0
or ebx, eax
or ebp, edx
cmp dword [esp + 0x30], 0x15
mov dword [esp + 0x14], ebx
mov dword [esp + 0x28], ebp
ja 0x1000fce2
mov eax, 0xcccccccd
xor edi, edi
mul dword [esp + 0x64]
mov eax, 0xcccccccd
mov ecx, edx
mul dword [esp + 0x60]
push dword [esp + 0x30]
add ecx, eax
mov eax, 0xcccccccc
adc edi, edx
mul dword [esp + 0x68]
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 + 0x68]
shrd ebx, ecx, 2
mov ecx, edx
lea eax, [ebx + ebx*4]
sub ecx, eax
jne 0x1000fcb9
push edi
push edx
call fcn.10011ae0
add esp, 0xc
mov byte [esp + 0x80], al
mov dword [esp + 0x20], 0
mov byte [esp + 0x12], 0
jmp 0x1000fd05
cmp byte [esp + 0x17], 0
je 0x1000fe25
sub edx, dword [esp + 0x3c]
sbb edi, 0
add edx, 0xffffffff
adc edi, 0xffffffff
push edi
push edx
call fcn.10011ae0
add esp, 0xc
mov byte [esp + 0x88], al
mov al, byte [esp + 0x80]
mov cl, byte [esp + 0x88]
mov dword [esp + 0x20], 0
mov byte [esp + 0x12], 0
test cl, cl
jne 0x10010501
test al, al
jne 0x10010501
mov ebx, dword [esp + 0x24]
xor edi, edi
mov ebp, dword [esp + 0x1c]
shrd ebx, ebp, 2
mov byte [esp + 0x88], al
mov eax, 0x5c28f5c3
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 + 0x18]
add ebx, eax
mov eax, 0x5c28f5c3
adc ecx, edx
xor edi, edi
shrd ebx, ecx, 2
mov dword [esp + 0x80], ebx
mov ebx, esi
shrd ebx, ebp, 2
shr ecx, 2
mul ebx
mov dword [esp + 0x68], 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 + 0x70], ebx
mov dword [esp + 0x64], ecx
cmp dword [esp + 0x68], ecx
jb 0x100102b1
mov edi, dword [esp + 0x80]
ja 0x1000fdd6
cmp edi, ebx
jbe 0x100102b1
mov ecx, dword [esp + 0x28]
mov ebx, dword [esp + 0x14]
push ecx
push ebx
call fcn.10011030
mov esi, dword [esp + 0x78]
add esp, 8
imul ecx, eax, 0x64
mov ebp, edx
mov dword [esp + 0x24], edi
mov dword [esp + 0x20], 2
sub ebx, ecx
cmp ebx, 0x32
mov ebx, eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x1c], eax
setae byte [esp + 0x88]
mov eax, dword [esp + 0x64]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], eax
jmp 0x100102b9
add edx, 2
adc edi, 0
push edi
push edx
call fcn.10011ae0
movzx eax, al
add esp, 0xc
cdq
sub dword [esp + 0x24], eax
sbb dword [esp + 0x1c], edx
jmp 0x1000fce2
xor ecx, ecx
mov eax, ebx
neg eax
mov ebp, 0x1005cfd8
cmp eax, 1
setg cl
imul edi, ebx, 0xfff4d105
shr edi, 0x14
sub edi, ecx
add ebx, edi
mov dword [esp + 0x70], edi
imul eax, ebx, 0xffed6cb1
mov dword [esp + 0x30], ebx
shr eax, 0x13
sub edi, eax
mov eax, ebx
shl eax, 4
sub ebp, eax
mov dword [esp + 0x34], edi
mov edi, dword [ebp]
mov eax, dword [ebp + 4]
mov dword [esp + 0x40], eax
mov eax, edi
mul edx
mov dword [esp + 0x44], 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 + 0x24]
add eax, esi
mov ecx, edx
mov dword [esp + 0x28], eax
mov eax, dword [ebp + 4]
adc ecx, 0
mul dword [esp + 0x1c]
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 + 0x58], eax
xor eax, eax
or eax, ebx
mov dword [esp + 0x18], edi
mov dword [esp + 0x48], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x20], eax
mov eax, edi
mul dword [esp + 0x24]
mov ebx, eax
mov ecx, edx
mov eax, edi
mul dword [esp + 0x1c]
mov esi, eax
mov edi, edx
mov eax, dword [esp + 0x20]
add esi, ecx
adc edi, 0
mul dword [esp + 0x24]
add eax, esi
mov ecx, edx
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x20]
adc ecx, 0
mul dword [esp + 0x1c]
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 + 0x14]
add esi, ecx
mov dword [esp + 0x68], esi
adc ebx, dword [esp + 0x58]
cmp ebx, dword [esp + 0x58]
ja 0x1000ff5b
jb 0x1000ff52
cmp esi, ecx
jae 0x1000ff5b
mov eax, 1
xor ecx, ecx
jmp 0x1000ff6c
xorps xmm0, xmm0
movlpd qword [esp + 0x58], xmm0
mov ecx, dword [esp + 0x5c]
mov eax, dword [esp + 0x58]
add ebp, eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x14], ebp
adc edx, ecx
mov ecx, dword [esp + 0x48]
mov edi, ecx
mov dword [esp + 0x3c], edx
add edi, dword [esp + 0x44]
adc eax, dword [esp + 0x40]
cmp eax, dword [esp + 0x28]
ja 0x1000ff9f
jb 0x1000ff96
cmp edi, ecx
jae 0x1000ff9f
mov ecx, 1
xor edx, edx
jmp 0x1000ffb0
xorps xmm0, xmm0
movlpd qword [esp + 0x58], xmm0
mov edx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x58]
mov eax, esi
mov edi, ebx
add eax, dword [esp + 0x18]
adc edi, dword [esp + 0x20]
add eax, ecx
adc edi, edx
cmp edi, ebx
ja 0x1000ffd9
jb 0x1000ffca
cmp eax, esi
jae 0x1000ffd9
mov edx, 1
mov dword [esp + 0x50], 0
jmp 0x1000ffee
xorps xmm0, xmm0
movlpd qword [esp + 0x58], xmm0
mov eax, dword [esp + 0x5c]
mov edx, dword [esp + 0x58]
mov dword [esp + 0x50], eax
mov ebp, dword [esp + 0x34]
mov eax, 9
sub eax, ebp
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x14]
lea ecx, [ebp + 0x17]
xor ebp, ebp
shr edi, cl
add eax, edx
mov edx, dword [esp + 0x3c]
adc edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x58]
call fcn.100453a0
or edi, eax
or ebp, edx
cmp dword [esp + 0x38], 1
mov dword [esp + 0x24], edi
mov dword [esp + 0x1c], ebp
jne 0x100100cc
mov ecx, dword [esp + 0x48]
mov ebp, ecx
sub ebp, dword [esp + 0x44]
mov eax, dword [esp + 0x28]
sbb eax, dword [esp + 0x40]
cmp eax, dword [esp + 0x28]
jb 0x10010059
ja 0x10010050
cmp ebp, ecx
jbe 0x10010059
mov eax, 1
xor edx, edx
jmp 0x1001006a
xorps xmm0, xmm0
movlpd qword [esp + 0x50], xmm0
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x50]
mov ecx, esi
mov esi, ebx
sub ecx, dword [esp + 0x18]
sbb esi, dword [esp + 0x20]
sub ecx, eax
sbb esi, edx
cmp esi, ebx
jb 0x10010095
ja 0x10010086
cmp ecx, dword [esp + 0x68]
jbe 0x10010095
mov edx, 1
mov dword [esp + 0x50], 0
jmp 0x100100aa
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 + 0x34]
xor ebp, ebp
mov eax, dword [esp + 0x14]
lea ecx, [ecx + 0x17]
shr esi, cl
sub eax, edx
mov edx, dword [esp + 0x3c]
sbb edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x58]
jmp 0x10010224
mov eax, dword [esp + 0x48]
mov esi, eax
mov edx, dword [esp + 0x28]
shld edx, esi, 1
add esi, esi
mov dword [esp + 0x48], edx
cmp edx, dword [esp + 0x28]
ja 0x100100fb
jb 0x100100ec
cmp esi, eax
jae 0x100100fb
mov edx, 1
mov dword [esp + 0x50], 0
jmp 0x10010110
xorps xmm0, xmm0
movlpd qword [esp + 0x28], xmm0
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x68]
mov ebp, ebx
mov ecx, eax
shld ebp, ecx, 1
add ecx, ecx
add ecx, edx
adc ebp, dword [esp + 0x50]
cmp ebp, ebx
ja 0x10010140
jb 0x1001012e
cmp ecx, eax
jae 0x10010140
mov dword [esp + 0x68], 1
mov dword [esp + 0x50], 0
jmp 0x10010159
xorps xmm0, xmm0
movlpd qword [esp + 0x68], xmm0
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x68], eax
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x3c]
shld eax, edx, 1
add edx, edx
add edx, dword [esp + 0x68]
adc eax, dword [esp + 0x50]
mov dword [esp + 0x50], eax
mov eax, esi
sub eax, dword [esp + 0x44]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x48]
sbb eax, dword [esp + 0x40]
cmp eax, dword [esp + 0x48]
jb 0x100101a5
ja 0x10010193
cmp dword [esp + 0x68], esi
jbe 0x100101a5
mov dword [esp + 0x68], 1
mov dword [esp + 0x48], 0
jmp 0x100101be
xorps xmm0, xmm0
movlpd qword [esp + 0x68], xmm0
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x68], eax
mov eax, ecx
mov esi, ebp
sub eax, dword [esp + 0x18]
sbb esi, dword [esp + 0x20]
sub eax, dword [esp + 0x68]
sbb esi, dword [esp + 0x48]
cmp esi, ebp
jb 0x100101eb
ja 0x100101dc
cmp eax, ecx
jbe 0x100101eb
mov eax, 1
mov dword [esp + 0x68], 0
jmp 0x10010200
xorps xmm0, xmm0
movlpd qword [esp + 0x48], xmm0
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x34]
xor ebp, ebp
add ecx, 0x18
shr esi, cl
sub edx, eax
mov eax, dword [esp + 0x68]
mov ecx, 8
sbb dword [esp + 0x50], eax
mov eax, edx
sub ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x50]
call fcn.100453a0
mov ecx, dword [esp + 0x34]
or ebp, edx
mov edx, dword [esp + 0x3c]
or esi, eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x18], ebp
xor ebp, ebp
lea ecx, [ecx + 0x17]
shr ebx, cl
mov ecx, dword [esp + 0x58]
call fcn.100453a0
or ebx, eax
or ebp, edx
mov eax, dword [esp + 0x70]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x28], ebp
cmp eax, 1
ja 0x10010293
cmp byte [esp + 0x13], 0
mov al, 1
mov byte [esp + 0x80], al
je 0x10010282
mov cl, byte [esp + 0x38]
mov byte [esp + 0x88], cl
jmp 0x1000fcf0
add edi, 0xffffffff
mov dword [esp + 0x24], edi
adc dword [esp + 0x1c], 0xffffffff
jmp 0x1000fce9
cmp eax, 0x3f
jae 0x1000fce2
mov ebx, dword [esp + 0x64]
dec eax
push eax
push dword [esp + 0x64]
push ebx
call fcn.10011a60
jmp 0x1000fca0
mov ebp, dword [esp + 0x28]
mov ebx, dword [esp + 0x14]
mov eax, 0xcccccccd
xor edi, edi
mul dword [esp + 0x24]
mov eax, 0xcccccccd
mov ecx, edx
mul dword [esp + 0x1c]
add ecx, eax
mov eax, 0xcccccccc
adc edi, edx
mul dword [esp + 0x24]
add eax, ecx
mov dword [esp + 0x80], 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
xor edi, edi
shrd ecx, eax, 3
shr eax, 3
mov dword [esp + 0x3c], eax
mov eax, 0xcccccccd
mul esi
mov dword [esp + 0x80], ecx
mov eax, 0xcccccccd
mov ecx, edx
mul dword [esp + 0x18]
add ecx, eax
mov eax, 0xcccccccc
adc edi, edx
mul esi
add eax, ecx
mov dword [esp + 0x28], edx
mov ecx, edx
mov eax, 0xcccccccc
adc ecx, 0
mul dword [esp + 0x18]
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 + 0x28], ecx
mov dword [esp + 0x64], eax
cmp dword [esp + 0x3c], eax
jb 0x100104b6
ja 0x10010380
cmp dword [esp + 0x80], ecx
jbe 0x100104b6
nop dword [eax]
mov eax, 0xcccccccd
mov edi, ebp
mul ebx
xor esi, esi
mov eax, 0xcccccccd
mov ecx, edx
mul edi
add ecx, eax
mov eax, 0xcccccccc
adc esi, edx
mul ebx
add eax, ecx
mov dword [esp + 0x14], edx
mov ecx, edx
mov eax, 0xcccccccc
adc ecx, 0
xor ebp, ebp
mul edi
add ecx, eax
adc ebp, edx
add ecx, esi
mov esi, dword [esp + 0x28]
adc ebp, 0
shrd ecx, ebp, 3
shr ebp, 3
mov dword [esp + 0x14], ecx
lea eax, [ecx + ecx*4]
add eax, eax
sub ebx, eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x18], eax
cmp ebx, 5
mov eax, 0xcccccccd
setae byte [esp + 0x88]
inc dword [esp + 0x20]
mul dword [esp + 0x80]
xor edi, edi
mov eax, 0xcccccccd
mov ecx, edx
mul dword [esp + 0x3c]
add ecx, eax
mov eax, 0xcccccccc
adc edi, edx
mul dword [esp + 0x80]
add eax, ecx
mov dword [esp + 0x80], edx
mov ecx, edx
mov eax, 0xcccccccc
adc ecx, 0
mul dword [esp + 0x3c]
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 + 0x3c], eax
mov eax, 0xcccccccd
mul esi
mov dword [esp + 0x80], ecx
mov eax, 0xcccccccd
mov ecx, edx
mul dword [esp + 0x64]
add ecx, eax
mov eax, 0xcccccccc
adc edi, edx
mul esi
add eax, ecx
mov dword [esp + 0x28], 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
mov ebx, dword [esp + 0x14]
shr eax, 3
mov dword [esp + 0x28], ecx
mov dword [esp + 0x64], eax
cmp dword [esp + 0x3c], eax
ja 0x10010380
jb 0x100104b6
cmp dword [esp + 0x80], ecx
ja 0x10010380
mov eax, dword [esp + 0x14]
cmp eax, esi
jne 0x100104c4
cmp ebp, dword [esp + 0x18]
je 0x100104f1
cmp byte [esp + 0x88], 0
jne 0x100104f1
xorps xmm0, xmm0
movlpd qword [esp + 0x80], xmm0
mov edx, dword [esp + 0x80]
mov esi, dword [esp + 0x84]
add edx, eax
adc esi, ebp
jmp 0x100108eb
mov edx, 1
xor esi, esi
add edx, eax
adc esi, ebp
jmp 0x100108eb
mov eax, 0xcccccccd
xor edi, edi
mul dword [esp + 0x24]
mov eax, 0xcccccccd
mov ecx, edx
mul dword [esp + 0x1c]
add ecx, eax
mov eax, 0xcccccccc
adc edi, edx
mul dword [esp + 0x24]
add eax, ecx
mov ebx, edx
mov eax, 0xcccccccc
adc ebx, 0
xor ecx, ecx
mul dword [esp + 0x1c]
add ebx, eax
mov eax, 0xcccccccd
adc ecx, edx
add ebx, edi
adc ecx, 0
xor edi, edi
mul esi
shrd ebx, ecx, 3
mov eax, 0xcccccccd
shr ecx, 3
mov dword [esp + 0x3c], ecx
mov ecx, edx
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x18]
mul ebx
add ecx, eax
mov eax, 0xcccccccc
adc edi, edx
mul esi
add eax, ecx
mov dword [esp + 0x24], 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 + 0x24], ecx
mov dword [esp + 0x64], eax
cmp dword [esp + 0x3c], eax
jb 0x1001071d
ja 0x100105b4
cmp dword [esp + 0x1c], ecx
jbe 0x1001071d
mov eax, 0xcccccccd
mov ebx, ebp
mul dword [esp + 0x14]
xor edi, edi
mov eax, 0xcccccccd
mov ecx, edx
mul ebx
add ecx, eax
mov eax, 0xcccccccc
adc edi, edx
mul dword [esp + 0x14]
add eax, ecx
mov eax, 0xcccccccc
adc edx, 0
xor ebp, ebp
mov dword [esp + 0x70], edx
mul ebx
mov ebx, dword [esp + 0x70]
add ebx, eax
movzx eax, byte [esp + 0x88]
adc ebp, edx
add ebx, edi
mov edi, dword [esp + 0x24]
adc ebp, 0
xor edx, edx
shrd ebx, ebp, 3
shr ebp, 3
lea ecx, [edi + edi*4]
add ecx, ecx
cmp esi, ecx
mov esi, edi
cmove edx, eax
movzx eax, byte [esp + 0x80]
xor ecx, ecx
mov byte [esp + 0x88], dl
cmp byte [esp + 0x12], cl
cmove ecx, eax
inc dword [esp + 0x20]
mov byte [esp + 0x80], cl
mov al, bl
shl al, 2
mov cl, bl
add cl, al
xor edi, edi
mov al, byte [esp + 0x14]
add cl, cl
sub al, cl
mov dword [esp + 0x14], ebx
mov byte [esp + 0x12], al
mov eax, dword [esp + 0x64]
mov dword [esp + 0x18], eax
mov eax, 0xcccccccd
mul dword [esp + 0x1c]
mov eax, 0xcccccccd
mov ecx, edx
mul dword [esp + 0x3c]
add ecx, eax
mov eax, 0xcccccccc
adc edi, edx
mul dword [esp + 0x1c]
add eax, ecx
mov dword [esp + 0x1c], edx
mov ecx, edx
mov eax, 0xcccccccc
adc ecx, 0
mul dword [esp + 0x3c]
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 + 0x3c], eax
mov eax, 0xcccccccd
mul esi
mov dword [esp + 0x1c], ecx
mov eax, 0xcccccccd
mov ecx, edx
mul dword [esp + 0x64]
add ecx, eax
mov eax, 0xcccccccc
adc edi, edx
mul esi
add eax, ecx
mov dword [esp + 0x24], 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 + 0x24], ecx
mov dword [esp + 0x64], eax
cmp dword [esp + 0x3c], eax
ja 0x100105b4
jb 0x10010715
cmp dword [esp + 0x1c], ecx
ja 0x100105b4
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x28], ebp
mov dh, byte [esp + 0x88]
test dh, dh
je 0x10010881
mov eax, 0xcccccccd
xor edi, edi
mul esi
mov eax, 0xcccccccd
mov ecx, edx
mul ebx
add ecx, eax
mov eax, 0xcccccccc
adc edi, edx
mul esi
add eax, ecx
mov ebx, edx
mov eax, 0xcccccccc
adc ebx, 0
xor ecx, ecx
mul dword [esp + 0x18]
add ebx, eax
mov eax, esi
adc ecx, edx
add ebx, edi
adc ecx, 0
shrd ebx, ecx, 3
shr ecx, 3
mov dword [esp + 0x68], ecx
mov dword [esp + 0x3c], ebx
lea ecx, [ebx + ebx*4]
add ecx, ecx
sub eax, ecx
jne 0x1001087a
mov dword [esp + 0x64], ebx
jmp 0x10010794
mov ebp, dword [esp + 0x28]
mov eax, 0xcccccccd
mov edi, ebp
mul dword [esp + 0x14]
xor esi, esi
mov eax, 0xcccccccd
mov ecx, edx
mul edi
add ecx, eax
mov eax, 0xcccccccc
adc esi, edx
mul dword [esp + 0x14]
add eax, ecx
mov ebx, edx
mov eax, 0xcccccccc
adc ebx, 0
xor ecx, ecx
mul edi
add ebx, eax
adc ecx, edx
add ebx, esi
mov esi, dword [esp + 0x3c]
mov ebp, esi
adc ecx, 0
shrd ebx, ecx, 3
shr ecx, 3
cmp byte [esp + 0x12], 0
mov dword [esp + 0x28], ecx
mov cl, bl
sete al
inc dword [esp + 0x20]
and byte [esp + 0x80], al
xor edi, edi
mov al, bl
shl al, 2
add cl, al
mov al, byte [esp + 0x14]
add cl, cl
mov dword [esp + 0x14], ebx
sub al, cl
mov byte [esp + 0x12], al
mov eax, dword [esp + 0x68]
mov ebx, eax
mov dword [esp + 0x18], eax
mov eax, 0xcccccccd
mul esi
mov eax, 0xcccccccd
mov ecx, edx
mul ebx
add ecx, eax
mov eax, 0xcccccccc
adc edi, edx
mul dword [esp + 0x64]
add eax, ecx
mov dword [esp + 0x3c], 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 + 0x68], eax
mov eax, ecx
mov dword [esp + 0x64], eax
mov dword [esp + 0x3c], ecx
lea eax, [eax + eax*4]
add eax, eax
sub ebp, eax
je 0x10010790
mov dh, byte [esp + 0x88]
cmp byte [esp + 0x80], 0
mov dl, byte [esp + 0x12]
je 0x100108a2
cmp dl, 5
jne 0x100108a2
mov eax, dword [esp + 0x14]
and eax, 1
or eax, 0
jne 0x100108a2
mov dl, 4
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x28]
cmp eax, esi
jne 0x100108bf
cmp ecx, dword [esp + 0x18]
jne 0x100108bf
cmp byte [esp + 0x13], 0
je 0x100108e0
test dh, dh
je 0x100108e0
cmp dl, 5
jae 0x100108e0
xorps xmm0, xmm0
movlpd qword [esp + 0x80], xmm0
mov esi, dword [esp + 0x84]
mov edx, dword [esp + 0x80]
jmp 0x100108e7
mov edx, 1
xor esi, esi
add edx, eax
adc esi, ecx
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x30]
add ecx, dword [esp + 0x20]
pop edi
mov dword [eax + 4], esi
pop esi
pop ebp
mov dword [eax + 8], ecx
mov dword [eax], edx
pop ebx
add esp, 0x68
ret