Function at 0x1008d540
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 0x1008d569
mov dword [esp + 0x5c], 0xfffffbcc
jmp 0x1008d579
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 0x1008d58d
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 0x1008d5ad
mov dword [esp + 0x38], edi
cmp ebp, 1
ja 0x1008d5b5
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 0x1008dbe1
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, 0x101a7c58
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 0x1008d6ea
jb 0x1008d6e1
cmp edi, ecx
jae 0x1008d6ea
mov eax, 1
xor ecx, ecx
jmp 0x1008d6fb
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 0x1008d72e
jb 0x1008d725
cmp esi, edx
jae 0x1008d72e
mov eax, 1
xor ebp, ebp
jmp 0x1008d73f
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 0x1008d75e
jb 0x1008d755
cmp eax, edi
jae 0x1008d75e
mov eax, 1
xor edx, edx
jmp 0x1008d76f
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.10184ff0
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 0x1008d846
mov edx, dword [esp + 0x1c]
mov esi, edx
sub esi, dword [esp + 0x44]
sbb eax, dword [esp + 0x48]
cmp eax, dword [esp + 0x28]
jb 0x1008d7d4
ja 0x1008d7cb
cmp esi, edx
jbe 0x1008d7d4
mov ecx, 1
xor edx, edx
jmp 0x1008d7e5
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 0x1008d808
ja 0x1008d7ff
cmp eax, edi
jbe 0x1008d808
mov edx, 1
xor esi, esi
jmp 0x1008d819
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.10184ff0
or ebx, eax
or edi, edx
mov dword [esp + 0x1c], edi
jmp 0x1008d985
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 0x1008d86b
jb 0x1008d862
cmp esi, ecx
jae 0x1008d86b
mov eax, 1
xor edx, edx
jmp 0x1008d87c
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 0x1008d8a5
jb 0x1008d896
cmp ecx, dword [esp + 0x68]
jae 0x1008d8a5
mov ebx, 1
mov dword [esp + 0x5c], 0
jmp 0x1008d8ba
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 0x1008d901
ja 0x1008d8f2
cmp dword [esp + 0x68], esi
jbe 0x1008d901
mov esi, 1
mov dword [esp + 0x5c], 0
jmp 0x1008d916
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 0x1008d941
ja 0x1008d932
cmp eax, ecx
jbe 0x1008d941
mov eax, 1
mov dword [esp + 0x5c], 0
jmp 0x1008d956
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.10184ff0
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.10184ff0
or ebx, eax
or esi, edx
cmp dword [esp + 0x34], 0x15
mov dword [esp + 0x18], ebx
ja 0x1008da53
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 0x1008da2d
push edi
push edx
call fcn.1008c360
add esp, 8
mov byte [esp + 0x15], al
mov dword [esp + 0x24], 0
mov byte [esp + 0x16], 0
jmp 0x1008da70
cmp byte [esp + 0x17], 0
je 0x1008dbbe
sub edx, dword [esp + 0x38]
sbb edi, 0
add edx, 0xffffffff
adc edi, 0xffffffff
push edi
push edx
call fcn.1008c360
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 0x1008e084
test al, al
jne 0x1008e084
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 0x1008e458
ja 0x1008db37
cmp dword [esp + 0x64], ebx
jbe 0x1008e458
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 0x1008e460
add edx, 2
adc edi, 0
push edi
push edx
call fcn.1008c360
movzx eax, al
add esp, 8
cdq
sub ebp, eax
mov dword [esp + 0x30], ebp
sbb dword [esp + 0x20], edx
jmp 0x1008da53
xor ecx, ecx
mov eax, ebx
neg eax
mov ebp, 0x101a8e98
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 0x1008dcfa
jb 0x1008dcf1
cmp esi, ecx
jae 0x1008dcfa
mov eax, 1
xor ecx, ecx
jmp 0x1008dd0b
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 0x1008dd3e
jb 0x1008dd35
cmp edi, ecx
jae 0x1008dd3e
mov ecx, 1
xor edx, edx
jmp 0x1008dd4f
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 0x1008dd78
jb 0x1008dd69
cmp eax, esi
jae 0x1008dd78
mov edx, 1
mov dword [esp + 0x50], 0
jmp 0x1008dd8d
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.10184ff0
or ebp, eax
or edi, edx
cmp dword [esp + 0x38], 1
mov dword [esp + 0x30], ebp
mov dword [esp + 0x20], edi
jne 0x1008de6e
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 0x1008ddf8
ja 0x1008ddef
cmp edi, ecx
jbe 0x1008ddf8
mov ecx, 1
xor edx, edx
jmp 0x1008de09
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 0x1008de2c
ja 0x1008de23
cmp eax, esi
jbe 0x1008de2c
mov edx, 1
xor esi, esi
jmp 0x1008de3d
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.10184ff0
or ebx, eax
or edi, edx
mov dword [esp + 0x1c], edi
mov edi, dword [esp + 0x20]
jmp 0x1008dfdb
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 0x1008dea0
jb 0x1008de8e
cmp esi, eax
jae 0x1008dea0
mov dword [esp + 0x50], 1
mov dword [esp + 0x4c], 0
jmp 0x1008deb9
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 0x1008deec
jb 0x1008dedd
cmp ecx, edx
jae 0x1008deec
mov ebx, 1
mov dword [esp + 0x50], 0
jmp 0x1008df01
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 0x1008df4b
ja 0x1008df39
cmp dword [esp + 0x70], esi
jbe 0x1008df4b
mov dword [esp + 0x4c], 1
mov dword [esp + 0x48], 0
jmp 0x1008df64
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 0x1008df95
ja 0x1008df86
cmp esi, ecx
jbe 0x1008df95
mov eax, 1
mov dword [esp + 0x4c], 0
jmp 0x1008dfaa
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.10184ff0
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.10184ff0
or ebx, eax
or esi, edx
mov eax, dword [esp + 0x78]
mov dword [esp + 0x18], ebx
cmp eax, 1
ja 0x1008e03d
cmp byte [esp + 0x17], 0
mov al, 1
mov byte [esp + 0x15], al
je 0x1008e02a
mov cl, byte [esp + 0x38]
mov byte [esp + 0x14], cl
jmp 0x1008da5b
add ebp, 0xffffffff
mov dword [esp + 0x30], ebp
adc edi, 0xffffffff
mov dword [esp + 0x20], edi
jmp 0x1008da57
cmp eax, 0x3f
jae 0x1008da53
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 0x1008da78
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 0x1008e29d
ja 0x1008e140
cmp dword [esp + 0x2c], ecx
jbe 0x1008e29d
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 0x1008e140
jb 0x1008e295
cmp dword [esp + 0x2c], ecx
ja 0x1008e140
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x28], ebp
mov dl, byte [esp + 0x14]
test dl, dl
je 0x1008e3f8
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 0x1008e3f4
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 0x1008e305
mov dl, byte [esp + 0x14]
cmp byte [esp + 0x15], 0
mov cl, byte [esp + 0x16]
je 0x1008e416
cmp cl, 5
jne 0x1008e416
mov eax, dword [esp + 0x18]
and eax, 1
or eax, 0
jne 0x1008e416
mov cl, 4
mov eax, dword [esp + 0x18]
cmp eax, dword [esp + 0x28]
jne 0x1008e439
cmp esi, dword [esp + 0x1c]
jne 0x1008e439
cmp byte [esp + 0x17], 0
je 0x1008e66e
test dl, dl
je 0x1008e66e
cmp cl, 5
jae 0x1008e66e
xorps xmm0, xmm0
movlpd qword [esp + 0x78], xmm0
mov edi, dword [esp + 0x7c]
mov edx, dword [esp + 0x78]
jmp 0x1008e675
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 0x1008e646
ja 0x1008e520
cmp dword [esp + 0x28], ecx
jbe 0x1008e646
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 0x1008e520
jb 0x1008e646
cmp dword [esp + 0x28], ecx
ja 0x1008e520
mov eax, dword [esp + 0x18]
cmp eax, ebp
jne 0x1008e654
cmp esi, dword [esp + 0x1c]
je 0x1008e66e
cmp byte [esp + 0x17], 0
jne 0x1008e66e
xorps xmm0, xmm0
movlpd qword [esp + 0x78], xmm0
mov edi, dword [esp + 0x7c]
mov edx, dword [esp + 0x78]
jmp 0x1008e675
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