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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x58
mov ecx, dword [esp + 0x74]
mov eax, dword [esp + 0x78]
mov edi, ecx
or edi, 0x100000
test eax, eax
cmove edi, ecx
lea edx, [eax - 0x435]
mov ebp, 0xfffffbcc
cmovne ebp, edx
mov edx, dword [esp + 0x70]
mov esi, edi
shld esi, edx, 2
mov dword [esp + 0x30], esi
or ecx, edx
setne cl
cmp eax, 2
setb bl
or bl, cl
lea eax, [edx*4]
test ebp, ebp
mov dword [esp + 0x18], eax
mov byte [esp + 0x2c], bl
js 0x1006e5d5
imul esi, ebp, 0x13441
shr esi, 0x12
cmp ebp, 4
adc esi, 0xffffffff
mov ebx, esi
shl ebx, 4
lea ecx, [edx + edx]
mov dword [esp + 0x10], ecx
mov eax, dword [ebx + 0x101650e0]
mov dword [esp + 0x14], eax
mul ecx
mov dword [esp + 0x24], eax
mov dword [esp + 0xc], edx
mov eax, esi
sub eax, ebp
mov dword [esp + 0x4c], eax
mov ebp, dword [ebx + 0x101650e4]
mov dword [esp + 0x1c], ebp
mov eax, ebp
mul ecx
mov dword [esp + 4], eax
mov ecx, edx
mov eax, dword [esp + 0x70]
shld edi, eax, 1
mov eax, dword [esp + 0x14]
mul edi
mov dword [esp], eax
mov dword [esp + 8], edx
mov dword [esp + 0x20], esi
imul eax, esi, 0x12934f
shr eax, 0x13
mov dword [esp + 0x38], eax
mov eax, ebp
mul edi
mov esi, eax
mov eax, dword [esp]
add eax, dword [esp + 0xc]
adc esi, dword [esp + 8]
adc edx, 0
add eax, dword [esp + 4]
mov dword [esp], eax
adc esi, ecx
adc edx, 0
mov dword [esp + 4], edx
mov ecx, dword [ebx + 0x101650e8]
mov eax, ecx
mov ebp, dword [esp + 0x10]
mul ebp
mov dword [esp + 0xc], eax
mov dword [esp + 8], edx
mov ebx, dword [ebx + 0x101650ec]
mov dword [esp + 0x28], ebx
mov eax, ebx
mul ebp
mov ebp, edx
mov dword [esp + 0x10], eax
mov eax, ecx
mul edi
mov dword [esp + 0x34], edx
mov edx, edi
mov edi, eax
mov eax, ebx
mul edx
mov ebx, eax
add edi, dword [esp + 8]
adc ebx, dword [esp + 0x34]
adc edx, 0
add edi, dword [esp + 0x10]
adc ebx, ebp
adc edx, 0
mov eax, dword [esp + 0xc]
add eax, esi
mov ebp, edx
adc edi, dword [esp + 4]
adc ebx, 0
adc ebp, 0
mov edx, eax
mov dword [esp + 0x44], ecx
add eax, ecx
mov esi, edi
adc esi, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
add ecx, dword [esp + 0x14]
mov ecx, dword [esp]
adc ecx, dword [esp + 0x1c]
adc eax, 0
adc esi, 0
mov ecx, edx
mov dword [esp + 0xc], edx
cmp eax, edx
mov eax, esi
mov dword [esp + 4], edi
sbb eax, edi
mov dword [esp + 8], ebx
mov eax, ebx
adc eax, 0
mov dword [esp + 0x10], ebp
mov edx, ebp
adc edx, 0
mov ebp, dword [esp + 0x4c]
mov ebx, dword [esp + 0x38]
mov ecx, 7
sub ecx, ebp
sub ecx, ebx
shld edx, eax, cl
shl eax, cl
xor edi, edi
mov dword [esp + 0x48], ecx
test cl, 0x20
cmovne edx, eax
mov dword [esp + 0x40], edx
mov ecx, ebp
cmovne eax, edi
lea ecx, [ebx + ebp]
add ecx, 0x19
mov dword [esp + 0x34], ecx
shr esi, cl
or esi, eax
movzx eax, byte [esp + 0x2c]
test al, al
mov dword [esp + 0x3c], esi
je 0x1006e7c2
mov edx, dword [esp + 0xc]
mov eax, edx
sub eax, dword [esp + 0x44]
mov ebx, 0
mov ebp, dword [esp + 4]
mov esi, ebp
sbb esi, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
cmp ecx, dword [esp + 0x14]
mov ecx, dword [esp]
sbb ecx, dword [esp + 0x1c]
sbb eax, 0
sbb esi, 0
cmp edx, eax
mov eax, ebp
sbb eax, esi
mov eax, dword [esp + 8]
sbb eax, 0
mov edi, dword [esp + 0x10]
sbb edi, 0
mov edx, dword [esp + 0x48]
mov ecx, edx
shld edi, eax, cl
shl eax, cl
test dl, 0x20
cmovne edi, eax
cmovne eax, ebx
mov ecx, dword [esp + 0x34]
shr esi, cl
mov ecx, edx
jmp 0x1006e868
imul esi, ebp, 0xfff4d105
shr esi, 0x14
xor eax, eax
cmp ebp, 0xffffffff
setne al
sub esi, eax
add ebp, esi
imul eax, ebp, 0xffed6cb1
shr eax, 0x13
mov dword [esp + 0x24], eax
mov eax, 0x10166320
mov dword [esp + 0x34], ebp
mov ebx, ebp
shl ebx, 4
sub eax, ebx
lea ecx, [edx + edx]
mov ebp, dword [eax]
mov dword [esp + 0x28], ebp
mov eax, ebp
mul ecx
mov dword [esp + 0x20], eax
mov dword [esp], edx
mov eax, 0x10166324
sub eax, ebx
mov eax, dword [eax]
mov dword [esp + 0xc], eax
mul ecx
mov dword [esp + 0x10], eax
mov dword [esp + 4], edx
mov eax, dword [esp + 0x70]
shld edi, eax, 1
mov eax, ebp
mul edi
mov ebp, eax
mov dword [esp + 8], edx
mov dword [esp + 0x4c], esi
sub esi, dword [esp + 0x24]
mov dword [esp + 0x14], esi
mov eax, dword [esp + 0xc]
mul edi
add ebp, dword [esp]
adc eax, dword [esp + 8]
adc edx, 0
add ebp, dword [esp + 0x10]
mov dword [esp + 0x38], ebp
adc eax, dword [esp + 4]
mov dword [esp + 0x10], eax
adc edx, 0
mov dword [esp + 4], edx
mov eax, 0x10166328
sub eax, ebx
mov ebp, dword [eax]
mov eax, ebp
mov esi, ecx
mul ecx
mov dword [esp], eax
mov dword [esp + 0x3c], edx
mov eax, 0x1016632c
sub eax, ebx
mov ecx, dword [eax]
mov eax, ecx
mul esi
mov dword [esp + 8], edx
mov dword [esp + 0x1c], eax
mov eax, ebp
mul edi
mov dword [esp + 0x40], edx
mov ebx, eax
mov eax, ecx
mul edi
mov esi, eax
add ebx, dword [esp + 0x3c]
adc esi, dword [esp + 0x40]
adc edx, 0
add ebx, dword [esp + 0x1c]
adc esi, dword [esp + 8]
adc edx, 0
mov eax, dword [esp]
add eax, dword [esp + 0x10]
mov dword [esp], eax
adc ebx, dword [esp + 4]
adc esi, 0
adc edx, 0
mov dword [esp + 0x44], ebp
add eax, ebp
mov edi, ebx
mov dword [esp + 0x50], ecx
adc edi, ecx
mov ecx, dword [esp + 0x20]
add ecx, dword [esp + 0x28]
mov ecx, dword [esp + 0x38]
adc ecx, dword [esp + 0xc]
adc eax, 0
adc edi, 0
cmp eax, dword [esp]
mov eax, edi
mov dword [esp + 4], ebx
sbb eax, ebx
mov dword [esp + 0x48], esi
mov eax, esi
adc eax, 0
mov dword [esp + 0x10], edx
mov esi, edx
adc esi, 0
mov ecx, 9
mov ebx, dword [esp + 0x14]
sub ecx, ebx
shld esi, eax, cl
shl eax, cl
xor edx, edx
mov dword [esp + 0x3c], ecx
test cl, 0x20
cmovne esi, eax
mov dword [esp + 0x1c], esi
cmovne eax, edx
mov dword [esp + 8], eax
add ebx, 0x17
mov dword [esp + 0x14], ebx
mov ecx, ebx
shr edi, cl
mov dword [esp + 0x40], edi
movzx eax, byte [esp + 0x2c]
test al, al
je 0x1006e9d9
mov edx, dword [esp]
mov eax, edx
sub eax, dword [esp + 0x44]
mov edi, dword [esp + 4]
mov esi, edi
sbb esi, dword [esp + 0x50]
mov ecx, dword [esp + 0x20]
cmp ecx, dword [esp + 0x28]
mov ecx, dword [esp + 0x38]
sbb ecx, dword [esp + 0xc]
sbb eax, 0
sbb esi, 0
cmp edx, eax
mov eax, edi
sbb eax, esi
mov edi, dword [esp + 0x48]
mov eax, edi
sbb eax, 0
mov ebx, dword [esp + 0x10]
sbb ebx, 0
mov ecx, dword [esp + 0x3c]
shld ebx, eax, cl
shl eax, cl
test cl, 0x20
cmovne ebx, eax
mov dword [esp], ebx
mov ecx, 0
cmovne eax, ecx
mov ecx, dword [esp + 0x14]
jmp 0x1006ea82
mov ebp, dword [esp]
mov ebx, ebp
mov ecx, dword [esp + 0x24]
shld ebx, ecx, 1
mov eax, dword [esp + 4]
mov edx, dword [esp + 0xc]
shld eax, edx, 1
lea esi, [ecx + ecx]
mov dword [esp + 0x50], esi
cmp esi, ecx
mov esi, ebx
sbb esi, ebp
setb cl
movzx ecx, cl
lea ecx, [ecx + edx*2]
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 8]
shld edi, esi, 1
cmp ecx, edx
mov edx, ecx
mov esi, eax
sbb esi, dword [esp + 4]
setb byte [esp]
sub ecx, dword [esp + 0x44]
mov esi, eax
sbb esi, dword [esp + 0x28]
mov ebp, dword [esp + 0x50]
cmp ebp, dword [esp + 0x14]
sbb ebx, dword [esp + 0x1c]
sbb ecx, 0
sbb esi, 0
cmp edx, ecx
sbb eax, esi
movzx eax, byte [esp]
mov ecx, dword [esp + 8]
lea eax, [eax + ecx*2]
sbb eax, 0
sbb edi, 0
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x4c]
add edx, ecx
add edx, 0x7a
mov cl, 0x80
sub cl, dl
shld edi, eax, cl
shl eax, cl
test cl, 0x20
cmovne edi, eax
mov ecx, 0
cmovne eax, ecx
mov ecx, edx
shr esi, cl
mov ecx, dword [esp + 0x48]
or esi, eax
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 8]
shld edx, ebx, cl
shl ebx, cl
xor eax, eax
test cl, 0x20
cmovne edx, ebx
mov dword [esp + 0x10], edx
cmovne ebx, eax
mov ecx, dword [esp + 0x34]
mov ebp, dword [esp + 4]
shr ebp, cl
or ebp, ebx
movd xmm1, esi
movd xmm0, edi
punpckldq xmm1, xmm0
mov ecx, dword [esp + 0x3c]
movd xmm0, ecx
movd xmm2, dword [esp + 0x40]
punpckldq xmm0, xmm2
punpcklqdq xmm0, xmm1
cmp dword [esp + 0x20], 0x15
ja 0x1006eb49
mov dword [esp + 4], ebp
mov esi, dword [esp + 0x18]
and esi, 0xfffffffc
xor ebx, ebx
mov edi, 0xcccccccc
inc edi
sete bl
mov eax, esi
mul edi
mov dword [esp + 0xc], edx
mov eax, esi
mov ecx, 0xcccccccc
mul ecx
mov dword [esp + 0x14], eax
mov dword [esp], edx
mov ebp, esi
mov ecx, dword [esp + 0x30]
mov eax, ecx
mul edi
mov edi, eax
mov esi, edx
imul ebp, ebx
add ebp, dword [esp + 0xc]
mov eax, ecx
mov edx, 0xcccccccc
mul edx
imul ebx, ecx
add edi, ebp
adc esi, ebx
add edi, dword [esp + 0x14]
mov ecx, dword [esp]
adc ecx, 0
add esi, eax
adc edx, 0
add esi, ecx
adc edx, 0
shld edx, esi, 0x1e
mov esi, dword [esp + 0x18]
lea eax, [edx + edx*4]
cmp eax, esi
jne 0x1006eb50
mov edx, 0xffffffff
mov ebp, dword [esp + 0x30]
nop word cs:[eax + eax]
mov dword [esp], edx
xor ebx, ebx
mov ecx, 0xcccccccc
inc ecx
sete bl
mov eax, esi
mul ecx
mov dword [esp + 8], edx
mov eax, esi
mov edx, 0xcccccccc
mul edx
mov dword [esp + 0x14], edx
mov dword [esp + 0xc], eax
mov eax, ebp
mul ecx
mov edi, eax
mov ecx, edx
mov eax, esi
mov dword [esp + 0x18], esi
mov esi, ebp
mov ebp, eax
imul ebp, ebx
add ebp, dword [esp + 8]
mov eax, esi
mov edx, 0xcccccccc
mul edx
imul ebx, esi
add edi, ebp
adc ecx, ebx
add edi, dword [esp + 0xc]
mov esi, dword [esp + 0x14]
adc esi, 0
add ecx, eax
mov ebp, edx
mov edx, dword [esp]
adc ebp, 0
add ecx, esi
adc ebp, 0
shrd ecx, ebp, 2
shr ebp, 2
lea eax, [ecx + ecx*4]
inc edx
cmp eax, dword [esp + 0x18]
mov esi, ecx
je 0x1006e950
cmp edx, dword [esp + 0x20]
setae al
jmp 0x1006ecd5
mov ecx, dword [esp + 0x38]
mov eax, ecx
mov esi, dword [esp + 0x20]
shld eax, esi, 1
mov ebp, dword [esp + 4]
mov edx, dword [esp]
shld ebp, edx, 1
neg dword [esp + 0x24]
lea edi, [esi + esi]
mov dword [esp + 0x54], edi
cmp edi, esi
mov esi, edx
mov ebx, eax
sbb ebx, ecx
setb bl
movzx ebx, bl
lea ebx, [ebx + edx*2]
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0x48]
shld edx, edi, 1
cmp ebx, esi
mov dword [esp + 0x20], ebx
mov ecx, ebp
sbb ecx, dword [esp + 4]
setb byte [esp]
sub ebx, dword [esp + 0x44]
mov esi, ebp
sbb esi, dword [esp + 0x50]
mov ecx, dword [esp + 0x54]
cmp ecx, dword [esp + 0x28]
sbb eax, dword [esp + 0xc]
sbb ebx, 0
sbb esi, 0
cmp dword [esp + 0x20], ebx
movzx eax, byte [esp]
lea eax, [eax + edi*2]
sbb ebp, esi
sbb eax, 0
sbb edx, 0
mov ecx, dword [esp + 0x4c]
mov ebx, dword [esp + 0x24]
add ebx, ecx
add ebx, 0x78
mov cl, 0x80
sub cl, bl
shld edx, eax, cl
shl eax, cl
test cl, 0x20
cmovne edx, eax
mov dword [esp], edx
mov ecx, 0
cmovne eax, ecx
mov ecx, ebx
shr esi, cl
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x10]
shld edx, edi, cl
shl edi, cl
or esi, eax
mov ebx, dword [esp + 8]
or ebx, dword [esp + 0x40]
xor eax, eax
test cl, 0x20
cmovne edx, edi
mov dword [esp + 0x10], edx
cmove eax, edi
mov ecx, dword [esp + 0x14]
mov ebp, dword [esp + 4]
shr ebp, cl
or ebp, eax
mov ecx, dword [esp + 0x4c]
cmp ecx, 1
ja 0x1006eae9
mov dword [esp + 4], ebp
mov eax, dword [esp + 0x70]
and eax, 1
sete dl
sub ebx, eax
sbb dword [esp + 0x1c], 0
and dl, byte [esp + 0x2c]
mov dword [esp + 0x24], edx
mov al, 1
mov dword [esp + 0xc], eax
mov ecx, ebx
jmp 0x1006ee43
movd xmm1, esi
movd xmm0, dword [esp]
punpckldq xmm1, xmm0
movd xmm0, ebx
movd xmm2, dword [esp + 0x1c]
punpckldq xmm0, xmm2
punpcklqdq xmm0, xmm1
cmp ecx, 0x3e
ja 0x1006ec0a
dec cl
xor esi, esi
mov eax, 0xffffffff
shl eax, cl
test cl, 0x20
mov ecx, 0xffffffff
cmovne ecx, eax
cmovne eax, esi
not ecx
mov esi, dword [esp + 0x30]
and esi, ecx
not eax
mov ecx, dword [esp + 0x18]
and ecx, eax
or ecx, esi
sete cl
mov eax, dword [esp + 0x34]
mov dword [esp + 0x20], eax
mov eax, ecx
xor ecx, ecx
jmp 0x1006ecdb
mov eax, dword [esp + 0x70]
test al, 1
mov ebp, dword [esp + 0x30]
jne 0x1006ec1b
movzx edi, byte [esp + 0x2c]
not edi
add edi, esi
adc ebp, 0xffffffff
mov ecx, 0xffffffff
nop word cs:[eax + eax]
mov dword [esp + 0x18], ecx
xor ecx, ecx
mov esi, 0xcccccccc
inc esi
sete cl
mov dword [esp], edi
mov eax, edi
mul esi
mov dword [esp + 8], edx
mov eax, edi
mov edx, 0xcccccccc
mul edx
mov dword [esp + 0x14], edx
mov dword [esp + 0xc], eax
mov eax, ebp
mul esi
mov ebx, eax
mov esi, edx
mov edi, ebp
mov ebp, dword [esp]
imul ebp, ecx
add ebp, dword [esp + 8]
mov eax, edi
mov edx, 0xcccccccc
mul edx
imul ecx, edi
add ebx, ebp
adc esi, ecx
mov ecx, dword [esp + 0x18]
add ebx, dword [esp + 0xc]
mov edi, dword [esp + 0x14]
adc edi, 0
add esi, eax
mov ebp, edx
adc ebp, 0
add esi, edi
adc ebp, 0
shrd esi, ebp, 2
shr ebp, 2
lea eax, [esi + esi*4]
inc ecx
cmp eax, dword [esp]
mov edi, esi
je 0x1006eb80
cmp ecx, dword [esp + 0x20]
setae cl
xor eax, eax
jmp 0x1006ecd7
xor ecx, ecx
mov eax, dword [esp + 0x34]
mov dword [esp + 0x20], eax
xor eax, eax
jmp 0x1006ecdb
or esi, 2
mov edx, 0xffffffff
nop word cs:[eax + eax]
mov dword [esp], edx
xor ebx, ebx
mov ecx, 0xcccccccc
inc ecx
sete bl
mov eax, esi
mul ecx
mov dword [esp + 8], edx
mov eax, esi
mov edx, 0xcccccccc
mul edx
mov dword [esp + 0x14], edx
mov dword [esp + 0xc], eax
mov eax, ebp
mul ecx
mov edi, eax
mov ecx, edx
mov eax, esi
mov dword [esp + 0x18], esi
mov esi, ebp
mov ebp, eax
imul ebp, ebx
add ebp, dword [esp + 8]
mov eax, esi
mov edx, 0xcccccccc
mul edx
imul ebx, esi
add edi, ebp
adc ecx, ebx
add edi, dword [esp + 0xc]
mov esi, dword [esp + 0x14]
adc esi, 0
add ecx, eax
mov ebp, edx
mov edx, dword [esp]
adc ebp, 0
add ecx, esi
adc ebp, 0
shrd ecx, ebp, 2
shr ebp, 2
lea eax, [ecx + ecx*4]
inc edx
cmp eax, dword [esp + 0x18]
mov esi, ecx
je 0x1006ec30
xor eax, eax
cmp edx, dword [esp + 0x20]
setae al
mov ecx, dword [esp + 0x3c]
sub ecx, eax
mov eax, dword [esp + 0x40]
sbb eax, 0
movd xmm0, ecx
movd xmm2, eax
punpckldq xmm0, xmm2
punpcklqdq xmm0, xmm1
xor eax, eax
xor ecx, ecx
mov ebp, dword [esp + 4]
movd dword [esp + 8], xmm0
pshufd xmm1, xmm0, 0x55
movd dword [esp + 0x1c], xmm1
pshufd xmm1, xmm0, 0xff
movd edx, xmm1
pshufd xmm1, xmm0, 0xee
movd esi, xmm1
test al, al
jne 0x1006ee28
test cl, cl
jne 0x1006ee28
movdqa xmm2, xmm0
psrlq xmm2, 2
psrlq xmm0, 0x22
movdqa xmm3, xmmword [0x10156c50]
movdqa xmm1, xmm2
pmuludq xmm1, xmm3
movdqa xmm4, xmmword [0x10156c60]
pmuludq xmm2, xmm4
pmuludq xmm3, xmm0
pmuludq xmm0, xmm4
psrlq xmm1, 0x20
paddq xmm1, xmm3
movdqa xmm3, xmm1
psrlq xmm3, 0x20
paddq xmm3, xmm0
pand xmm1, xmmword [0x10156c70]
paddq xmm1, xmm2
psrlq xmm1, 0x20
paddq xmm1, xmm3
psrlq xmm1, 2
pshufd xmm0, xmm1, 0x55
movd ebx, xmm0
movd eax, xmm1
pshufd xmm0, xmm1, 0xff
movd ecx, xmm0
pshufd xmm0, xmm1, 0xee
movd edi, xmm0
mov dword [esp + 0x14], eax
cmp edi, eax
mov eax, ecx
mov dword [esp + 0x18], ebx
sbb eax, ebx
jae 0x1006f1dc
mov dword [esp + 0xc], edi
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x10]
mov esi, ecx
shld esi, ebp, 0x1e
mov edi, 0x5c28f5c3
mov eax, esi
mul edi
mov ebx, edx
mov edx, 0x28f5c28f
mov eax, esi
mul edx
mov dword [esp], eax
mov dword [esp + 4], edx
shr ecx, 2
mov eax, ecx
mul edi
mov esi, edx
mov edi, eax
mov eax, ecx
mov ecx, 0x28f5c28f
mul ecx
add edi, ebx
adc eax, esi
adc edx, 0
add edi, dword [esp]
adc eax, dword [esp + 4]
adc edx, 0
shrd eax, edx, 2
shr edx, 2
mov dword [esp + 0x10], edx
imul ecx, eax, 0xffffff9c
add ecx, ebp
cmp ecx, 0x32
setae cl
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], 2
mov dword [esp + 4], eax
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
jmp 0x1006f200
mov dword [esp], edx
mov dword [esp + 0x24], ecx
mov dword [esp + 0xc], eax
mov dword [esp + 4], ebp
mov eax, dword [esp + 0x20]
mov dword [esp + 0x34], eax
mov ecx, dword [esp + 8]
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], 0
mov dword [esp + 0x2c], 0
nop word [eax + eax]
xor eax, eax
mov esi, 0xcccccccc
inc esi
sete al
mov edi, eax
mov eax, ecx
mul esi
mov ebp, esi
mov dword [esp + 0x28], esi
mov dword [esp + 0x30], edx
mov eax, ecx
mov edx, 0xcccccccc
mul edx
mov dword [esp + 0x20], eax
mov dword [esp + 8], edx
mov esi, ecx
imul esi, edi
mov ebx, dword [esp + 0x1c]
mov eax, ebx
mul ebp
mov ebp, eax
add esi, dword [esp + 0x30]
mov ecx, ebx
mov eax, ebx
mov ebx, edx
mov edx, 0xcccccccc
mul edx
imul ecx, edi
mov dword [esp + 0x38], edi
add ebp, esi
mov esi, ebx
adc esi, ecx
add ebp, dword [esp + 0x20]
mov ecx, dword [esp + 8]
adc ecx, 0
add esi, eax
mov ebx, edx
adc ebx, 0
add esi, ecx
adc ebx, 0
shrd esi, ebx, 3
mov dword [esp + 8], esi
mov esi, dword [esp + 0x18]
mov eax, esi
mov ecx, dword [esp + 0x28]
mul ecx
mov dword [esp + 0x30], edx
mov eax, esi
mov edx, 0xcccccccc
mul edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], edx
imul esi, edi
mov ebp, dword [esp]
mov eax, ebp
mov dword [esp], ebp
mul ecx
mov edi, eax
mov ecx, edx
add esi, dword [esp + 0x30]
shr ebx, 3
mov eax, ebp
mov edx, 0xcccccccc
mul edx
mov ebp, edx
mov edx, dword [esp + 0x38]
imul edx, dword [esp]
add edi, esi
adc ecx, edx
add edi, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
adc edx, 0
add ecx, eax
adc ebp, 0
add ecx, edx
adc ebp, 0
shrd ecx, ebp, 3
shr ebp, 3
cmp ecx, dword [esp + 8]
mov eax, ebp
mov dword [esp + 0x1c], ebx
sbb eax, ebx
jae 0x1006f030
xor eax, eax
mov esi, 0xcccccccc
inc esi
sete al
mov dword [esp], eax
mov edi, dword [esp + 4]
mov eax, edi
mul esi
mov dword [esp + 0x30], edx
mov eax, edi
mov edx, 0xcccccccc
mul edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x28], edx
mov eax, dword [esp + 0x10]
mul esi
mov esi, eax
mov ebx, edx
imul edi, dword [esp]
add edi, dword [esp + 0x30]
mov eax, dword [esp + 0x10]
mov edx, 0xcccccccc
mul edx
mov dword [esp + 0x30], eax
mov eax, dword [esp]
imul eax, dword [esp + 0x10]
add esi, edi
adc ebx, eax
add esi, dword [esp + 0x20]
mov eax, dword [esp + 0x28]
adc eax, 0
add ebx, dword [esp + 0x30]
mov edi, edx
adc edi, 0
add ebx, eax
adc edi, 0
mov eax, edi
shld eax, ebx, 0x1d
mov dword [esp + 0x28], eax
shr ebx, 2
and ebx, 0xfffffffe
lea edx, [ebx + ebx*4]
neg edx
add dl, byte [esp + 4]
lea esi, [ecx + ecx]
lea esi, [esi + esi*4]
shr edi, 3
mov dword [esp + 0x10], edi
cmp esi, dword [esp + 0x18]
sete bl
mov eax, dword [esp + 0x24]
and al, bl
mov dword [esp + 0x24], eax
cmp byte [esp + 0x14], 0
sete bl
mov eax, dword [esp + 0xc]
and al, bl
mov dword [esp + 0xc], eax
inc dword [esp + 0x2c]
mov dword [esp + 0x18], ecx
mov dword [esp], ebp
mov dword [esp + 0x14], edx
mov eax, dword [esp + 0x28]
mov dword [esp + 4], eax
mov ecx, dword [esp + 8]
jmp 0x1006ee60
mov ebx, dword [esp]
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x24]
test al, al
jne 0x1006f107
mov edx, edi
jmp 0x1006f189
shr esi, 3
xor eax, eax
mov edi, 0xcccccccc
inc edi
sete al
mov dword [esp], eax
mov ebx, dword [esp + 4]
mov eax, ebx
mul edi
mov dword [esp + 0x1c], edx
mov eax, ebx
mov edx, 0xcccccccc
mul edx
mov dword [esp + 8], eax
mov dword [esp + 0x18], edx
mov ebx, dword [esp + 4]
mov eax, dword [esp + 0x10]
mul edi
mov ebp, eax
mov edi, edx
imul ebx, dword [esp]
add ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
mov edx, 0xcccccccc
mul edx
mov dword [esp + 0x1c], eax
mov eax, dword [esp]
imul eax, dword [esp + 0x10]
add ebp, ebx
adc edi, eax
add ebp, dword [esp + 8]
mov eax, dword [esp + 0x18]
adc eax, 0
add edi, dword [esp + 0x1c]
mov ebx, edx
adc ebx, 0
add edi, eax
adc ebx, 0
mov ebp, ebx
shld ebp, edi, 0x1d
shr edi, 2
and edi, 0xfffffffe
lea edx, [edi + edi*4]
neg edx
add dl, byte [esp + 4]
shr ebx, 3
mov dword [esp + 0x10], ebx
cmp byte [esp + 0x14], 0
sete bl
mov eax, dword [esp + 0xc]
and al, bl
mov dword [esp + 0xc], eax
inc dword [esp + 0x2c]
mov edi, ecx
mov dword [esp], esi
mov dword [esp + 0x14], edx
mov dword [esp + 4], ebp
mov dword [esp + 0x18], edi
xor ebx, ebx
mov ecx, 0xcccccccc
inc ecx
sete bl
mov eax, edi
mul ecx
mov dword [esp + 0x28], edx
mov eax, edi
mov edx, 0xcccccccc
mul edx
mov dword [esp + 0x1c], eax
mov dword [esp + 8], edx
mov edi, dword [esp + 0x18]
imul edi, ebx
mov esi, dword [esp]
mov eax, esi
mul ecx
mov ebp, eax
mov ecx, edx
add edi, dword [esp + 0x28]
imul ebx, esi
mov eax, esi
mov edx, 0xcccccccc
mul edx
mov esi, edx
add ebp, edi
mov edx, dword [esp + 0x18]
adc ecx, ebx
add ebp, dword [esp + 0x1c]
mov edi, dword [esp + 8]
adc edi, 0
add ecx, eax
adc esi, 0
add ecx, edi
adc esi, 0
shrd ecx, esi, 3
lea eax, [ecx + ecx]
lea eax, [eax + eax*4]
cmp eax, edx
je 0x1006f050
mov ebx, dword [esp]
mov eax, dword [esp + 0x24]
test al, al
sete cl
xor edx, dword [esp + 4]
mov esi, dword [esp + 0x10]
xor ebx, esi
or ebx, edx
mov eax, dword [esp + 0x6c]
mov edi, dword [esp + 0x34]
jne 0x1006f1ba
mov edx, dword [esp + 0x70]
or dl, cl
mov ch, 1
test dl, 1
je 0x1006f1ba
mov ebx, dword [esp + 4]
jmp 0x1006f3cc
test byte [esp + 0xc], 1
sete cl
cmp byte [esp + 0x14], 5
setne ch
setae dl
or ch, cl
mov ebx, dword [esp + 4]
or ch, bl
and ch, dl
jmp 0x1006f3cc
mov dword [esp + 0x28], 0
mov dword [esp + 4], ebp
mov ecx, dword [esp + 8]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0xc], esi
mov dword [esp + 0x24], edx
mov dword [esp + 0x2c], 0
mov dword [esp + 0x18], eax
nop word cs:[eax + eax]
xor eax, eax
mov ebp, 0xcccccccc
inc ebp
sete al
mov edi, eax
mov dword [esp], eax
mov eax, ecx
mul ebp
mov esi, edx
mov eax, ecx
mov edx, 0xcccccccc
mul edx
mov dword [esp + 8], eax
mov dword [esp + 0x14], edx
imul ecx, edi
mov ebx, dword [esp + 0x18]
mov eax, ebx
mul ebp
mov edi, eax
add ecx, esi
mov esi, ebx
mov eax, ebx
mov ebx, edx
mov edx, 0xcccccccc
mul edx
imul esi, dword [esp]
add edi, ecx
adc ebx, esi
add edi, dword [esp + 8]
mov ecx, dword [esp + 0x14]
adc ecx, 0
add ebx, eax
mov edi, edx
adc edi, 0
add ebx, ecx
adc edi, 0
shrd ebx, edi, 3
mov dword [esp + 0x14], ebx
mov ecx, dword [esp + 0xc]
mov eax, ecx
mul ebp
mov dword [esp + 0x18], edx
mov eax, ecx
mov edx, 0xcccccccc
mul edx
mov dword [esp + 0x1c], eax
mov dword [esp + 8], edx
imul ecx, dword [esp]
mov ebx, dword [esp + 0x24]
mov eax, ebx
mul ebp
mov ebp, eax
mov esi, edx
add ecx, dword [esp + 0x18]
shr edi, 3
mov dword [esp + 0x18], edi
mov eax, ebx
mov edx, 0xcccccccc
mul edx
mov edi, edx
mov edx, dword [esp]
imul edx, ebx
add ebp, ecx
adc esi, edx
add ebp, dword [esp + 0x1c]
mov ecx, dword [esp + 8]
adc ecx, 0
add esi, eax
adc edi, 0
add esi, ecx
adc edi, 0
shrd esi, edi, 3
shr edi, 3
cmp esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov eax, edi
sbb eax, ecx
jae 0x1006f3a9
xor eax, eax
mov ebx, 0xcccccccc
inc ebx
sete al
mov dword [esp + 0xc], eax
mov ebp, dword [esp + 4]
mov eax, ebp
mul ebx
mov dword [esp + 0x1c], edx
mov eax, ebp
mov ecx, 0xcccccccc
mul ecx
mov dword [esp], edx
mov dword [esp + 8], eax
mov eax, dword [esp + 0x10]
mul ebx
mov dword [esp + 0x24], eax
mov ebx, edx
mov ecx, dword [esp + 4]
mov ebp, dword [esp + 0xc]
imul ecx, ebp
add ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
mov edx, 0xcccccccc
mul edx
mov dword [esp + 0x1c], eax
mov eax, ebp
imul eax, dword [esp + 0x10]
mov ebp, dword [esp + 0x24]
add ebp, ecx
adc ebx, eax
add ebp, dword [esp + 8]
mov ecx, dword [esp]
adc ecx, 0
add ebx, dword [esp + 0x1c]
adc edx, 0
add ebx, ecx
adc edx, 0
shrd ebx, edx, 3
lea eax, [ebx + ebx]
lea eax, [eax + eax*4]
mov ecx, dword [esp + 4]
sub ecx, eax
shr edx, 3
mov dword [esp + 0x10], edx
cmp ecx, 5
setae al
mov dword [esp + 0x28], eax
inc dword [esp + 0x2c]
mov dword [esp + 0xc], esi
mov dword [esp + 0x24], edi
mov dword [esp + 4], ebx
mov ecx, dword [esp + 0x14]
jmp 0x1006f210
mov eax, ebx
mov ebx, dword [esp + 4]
mov ecx, dword [esp + 0xc]
xor ecx, ebx
mov esi, dword [esp + 0x10]
xor eax, esi
or eax, ecx
sete ch
or ch, byte [esp + 0x28]
mov edi, dword [esp + 0x20]
mov eax, dword [esp + 0x6c]
mov edx, dword [esp + 0x2c]
movzx ecx, ch
and ecx, 1
add ecx, ebx
adc esi, 0
add edi, edx
mov dword [eax + 8], edi
mov dword [eax], ecx
mov dword [eax + 4], esi
add esp, 0x58
pop esi
pop edi
pop ebx
pop ebp
ret