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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x50
mov ecx, dword [esp + 0x6c]
mov eax, dword [esp + 0x70]
mov esi, ecx
or esi, 0x100000
test eax, eax
cmove esi, ecx
lea edx, [eax - 0x435]
mov ebp, 0xfffffbcc
cmovne ebp, edx
mov edx, dword [esp + 0x68]
mov edi, esi
shld edi, edx, 2
or ecx, edx
setne cl
cmp eax, 2
setb al
or al, cl
mov dword [esp + 0x2c], eax
lea eax, [edx*4]
test ebp, ebp
mov dword [esp + 0x24], edi
mov dword [esp + 0x28], eax
js 0x10009034
imul edi, ebp, 0x13441
shr edi, 0x12
cmp ebp, 4
adc edi, 0xffffffff
mov ebx, edi
shl ebx, 4
lea ecx, [edx + edx]
mov eax, dword [ebx + 0x100c5338]
mov dword [esp + 0xc], eax
mul ecx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x10], eax
mov dword [esp + 0x20], edx
mov eax, edi
sub eax, ebp
mov dword [esp + 0x14], eax
mov ebp, dword [ebx + 0x100c533c]
mov eax, ebp
mov dword [esp + 4], ebp
mul ecx
mov dword [esp + 0x18], eax
mov dword [esp], edx
mov eax, dword [esp + 0x68]
shld esi, eax, 1
mov eax, dword [esp + 0xc]
mul esi
mov ecx, eax
mov dword [esp + 0x1c], edx
mov dword [esp + 0x30], edi
imul eax, edi, 0x12934f
shr eax, 0x13
mov dword [esp + 8], eax
mov eax, ebp
mul esi
add ecx, dword [esp + 0x20]
adc eax, dword [esp + 0x1c]
adc edx, 0
add ecx, dword [esp + 0x18]
mov dword [esp + 0x18], ecx
adc eax, dword [esp]
mov dword [esp + 0x1c], eax
adc edx, 0
mov dword [esp + 0x20], edx
mov edi, dword [ebx + 0x100c5340]
mov eax, edi
mov ecx, dword [esp + 0x38]
mul ecx
mov dword [esp], eax
mov dword [esp + 0x3c], edx
mov ebp, dword [ebx + 0x100c5344]
mov eax, ebp
mul ecx
mov ecx, edx
mov dword [esp + 0x38], eax
mov eax, edi
mul esi
mov dword [esp + 0x34], edx
mov ebx, eax
mov eax, ebp
mul esi
mov esi, dword [esp]
add ebx, dword [esp + 0x3c]
adc eax, dword [esp + 0x34]
adc edx, 0
add ebx, dword [esp + 0x38]
adc eax, ecx
adc edx, 0
add esi, dword [esp + 0x1c]
adc ebx, dword [esp + 0x20]
adc eax, 0
mov dword [esp + 0x38], eax
adc edx, 0
mov dword [esp], esi
mov dword [esp + 0x40], edi
add esi, edi
mov edi, ebx
mov dword [esp + 0x34], ebp
adc edi, ebp
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0xc]
mov ecx, dword [esp + 0x18]
adc ecx, dword [esp + 4]
adc esi, 0
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 8]
lea ecx, [eax + ebp]
lea eax, [eax + ebp + 0x7a]
adc edi, 0
add ecx, 0x39
mov dword [esp + 0x20], ecx
mov dword [esp + 0x1c], eax
je 0x10009268
cmp esi, dword [esp]
mov ecx, edi
sbb ecx, ebx
mov dword [esp + 8], esi
mov esi, dword [esp + 0x38]
adc esi, 0
mov ebp, edx
adc ebp, 0
mov dword [esp + 0x3c], edx
mov edx, 0x81
sub edx, eax
mov ecx, edx
shld ebp, esi, cl
shl esi, cl
xor eax, eax
test dl, 0x20
cmovne ebp, esi
cmovne esi, eax
mov ecx, dword [esp + 0x20]
shrd dword [esp + 8], edi, cl
shr edi, cl
test cl, 0x20
mov ecx, dword [esp + 8]
cmovne ecx, edi
mov dword [esp + 8], ecx
cmovne edi, eax
or dword [esp + 8], esi
or edi, ebp
cmp byte [esp + 0x2c], 0
mov dword [esp + 0x14], edi
je 0x100092b8
mov ebp, dword [esp]
sub ebp, dword [esp + 0x40]
mov esi, ebx
sbb esi, dword [esp + 0x34]
mov ecx, dword [esp + 0x10]
cmp ecx, dword [esp + 0xc]
mov ecx, dword [esp + 0x18]
sbb ecx, dword [esp + 4]
sbb ebp, 0
sbb esi, 0
cmp dword [esp], ebp
mov ecx, ebx
sbb ecx, esi
mov eax, dword [esp + 0x38]
mov dword [esp + 0x10], ebx
mov ebx, eax
sbb ebx, 0
mov edi, dword [esp + 0x3c]
sbb edi, 0
mov ecx, edx
shld edi, ebx, cl
shl ebx, cl
test dl, 0x20
cmovne edi, ebx
mov edx, 0
cmovne ebx, edx
mov ecx, dword [esp + 0x20]
shrd ebp, esi, cl
shr esi, cl
test cl, 0x20
cmovne ebp, esi
cmovne esi, edx
or ebp, ebx
mov dword [esp + 0xc], ebp
mov ebx, dword [esp + 8]
or esi, edi
mov dword [esp + 4], esi
jmp 0x100095f0
imul ecx, ebp, 0xfff4d105
shr ecx, 0x14
xor eax, eax
cmp ebp, 0xffffffff
setne al
sub ecx, eax
mov dword [esp + 0x18], ecx
add ebp, ecx
mov eax, 0x100c6578
mov ebx, ebp
shl ebx, 4
sub eax, ebx
shld esi, edx, 1
lea ecx, [edx + edx]
mov edi, 0x100c657c
sub edi, ebx
mov eax, dword [eax]
mov dword [esp + 4], eax
mov dword [esp + 0x1c], ecx
mul ecx
mov dword [esp + 0x30], eax
mov dword [esp + 8], edx
mov eax, dword [edi]
mov dword [esp + 0xc], eax
mul ecx
mov dword [esp + 0x10], eax
mov dword [esp], edx
mov dword [esp + 0x38], ebp
imul ecx, ebp, 0xffed6cb1
shr ecx, 0x13
mov eax, dword [esp + 4]
mul esi
mov edi, eax
mov ebp, edx
mov eax, dword [esp + 0x18]
sub eax, ecx
mov dword [esp + 0x20], eax
neg ecx
mov dword [esp + 0x14], ecx
mov eax, dword [esp + 0xc]
mul esi
add edi, dword [esp + 8]
adc eax, ebp
adc edx, 0
add edi, dword [esp + 0x10]
mov dword [esp + 0x3c], edi
adc eax, dword [esp]
mov dword [esp + 8], eax
adc edx, 0
mov dword [esp + 0x10], edx
mov eax, 0x100c6580
sub eax, ebx
mov ebp, dword [eax]
mov eax, ebp
mov ecx, dword [esp + 0x1c]
mul ecx
mov dword [esp], eax
mov dword [esp + 0x34], edx
mov eax, 0x100c6584
sub eax, ebx
mov edi, dword [eax]
mov eax, edi
mul ecx
mov ecx, edx
mov dword [esp + 0x1c], eax
mov eax, ebp
mul esi
mov dword [esp + 0x40], edx
mov ebx, eax
mov eax, edi
mul esi
add ebx, dword [esp + 0x34]
adc eax, dword [esp + 0x40]
adc edx, 0
add ebx, dword [esp + 0x1c]
adc eax, ecx
adc edx, 0
mov esi, dword [esp]
add esi, dword [esp + 8]
adc ebx, dword [esp + 0x10]
adc eax, 0
adc edx, 0
mov dword [esp + 0x1c], edx
mov dword [esp], esi
mov dword [esp + 0x44], ebp
add esi, ebp
mov ebp, ebx
mov edx, ebx
mov dword [esp + 0x48], edi
adc edx, edi
mov ecx, dword [esp + 0x30]
add ecx, dword [esp + 4]
mov ecx, dword [esp + 0x3c]
adc ecx, dword [esp + 0xc]
adc esi, 0
mov ecx, dword [esp + 0x18]
mov edi, dword [esp + 0x14]
lea ecx, [ecx + edi + 0x78]
mov edi, dword [esp + 0x20]
adc edx, 0
add edi, 0x37
mov dword [esp + 0x40], eax
mov dword [esp + 0x34], ecx
mov dword [esp + 0x10], ebx
je 0x100092bd
cmp esi, dword [esp]
mov ecx, edx
sbb ecx, ebp
mov ebx, eax
adc ebx, 0
mov eax, edi
mov edi, dword [esp + 0x1c]
adc edi, 0
mov ecx, 0x81
sub ecx, dword [esp + 0x34]
shld edi, ebx, cl
shl ebx, cl
xor ebp, ebp
mov dword [esp + 0x4c], ecx
test cl, 0x20
cmovne edi, ebx
cmovne ebx, ebp
mov ecx, eax
shrd esi, edx, cl
shr edx, cl
mov dword [esp + 0x20], eax
test al, 0x20
mov eax, 0
cmovne esi, edx
cmovne edx, eax
or esi, ebx
mov dword [esp + 8], esi
or edx, edi
mov dword [esp + 0x14], edx
cmp byte [esp + 0x2c], 0
je 0x10009309
mov ecx, dword [esp]
mov edx, ecx
mov edi, ecx
sub edx, dword [esp + 0x44]
mov ebp, dword [esp + 0x10]
mov esi, ebp
sbb esi, dword [esp + 0x48]
mov ecx, dword [esp + 0x30]
cmp ecx, dword [esp + 4]
mov ecx, dword [esp + 0x3c]
sbb ecx, dword [esp + 0xc]
sbb edx, 0
sbb esi, 0
cmp edi, edx
mov ecx, ebp
sbb ecx, esi
mov ebx, dword [esp + 0x40]
sbb ebx, 0
mov edi, dword [esp + 0x1c]
sbb edi, 0
mov ecx, dword [esp + 0x4c]
shld edi, ebx, cl
shl ebx, cl
test cl, 0x20
cmovne edi, ebx
cmovne ebx, eax
mov ecx, dword [esp + 0x20]
shrd edx, esi, cl
shr esi, cl
test cl, 0x20
cmovne edx, esi
cmovne esi, eax
or edx, ebx
mov dword [esp + 0xc], edx
or esi, edi
mov dword [esp + 4], esi
mov eax, ecx
mov edi, dword [esp]
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x34]
jmp 0x100097d7
mov dword [esp + 0x14], edi
mov edi, dword [esp]
cmp byte [esp + 0x2c], 0
je 0x10009315
mov eax, edi
sub eax, dword [esp + 0x40]
mov ebp, ebx
mov edx, ebx
sbb edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x10]
cmp ecx, dword [esp + 0xc]
mov ecx, dword [esp + 0x18]
sbb ecx, dword [esp + 4]
sbb eax, 0
mov dword [esp + 0xc], eax
sbb edx, 0
mov dword [esp + 4], edx
mov ebx, esi
cmp dword [esp + 0x30], 0x15
jbe 0x100093f4
jmp 0x10009634
mov edi, dword [esp]
jmp 0x1000931d
mov dword [esp + 0x14], edx
mov dword [esp + 8], esi
mov ecx, dword [esp]
mov ebx, dword [esp + 0x2c]
test bl, bl
je 0x1000963d
mov edi, ecx
mov eax, ecx
sub eax, dword [esp + 0x44]
mov edx, ebp
sbb edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x30]
cmp ecx, dword [esp + 4]
mov ecx, dword [esp + 0x3c]
sbb ecx, dword [esp + 0xc]
sbb eax, 0
mov dword [esp + 0xc], eax
sbb edx, 0
mov dword [esp + 4], edx
mov eax, dword [esp + 0x68]
jmp 0x1000980a
mov edi, dword [esp]
mov ebp, dword [esp + 0x10]
jmp 0x10009643
mov dword [esp + 0x3c], edx
mov dword [esp + 8], esi
mov edx, edi
mov ecx, edi
mov ebp, dword [esp + 0x18]
shld ecx, ebp, 1
mov edi, dword [esp + 0x10]
shld ebp, edi, 1
add edi, edi
mov dword [esp + 0x10], ebx
mov eax, ebx
shld eax, edx, 1
mov esi, ecx
sub esi, dword [esp + 0x40]
mov ebx, eax
sbb ebx, dword [esp + 0x34]
cmp edi, dword [esp + 0xc]
sbb ebp, dword [esp + 4]
sbb esi, 0
sbb ebx, 0
mov edi, dword [esp + 0x1c]
add edi, 0xffffffc0
mov dword [esp + 0xc], edi
mov edx, dword [esp + 0x38]
je 0x100095e2
mov ebp, dword [esp + 0x3c]
shld ebp, edx, 1
cmp ecx, dword [esp]
mov edi, eax
sbb edi, dword [esp + 0x10]
setb byte [esp + 4]
cmp ecx, esi
movzx ecx, byte [esp + 4]
lea edi, [ecx + edx*2]
sbb eax, ebx
mov eax, edx
sbb edi, 0
sbb ebp, 0
mov cl, 0x80
sub cl, byte [esp + 0x1c]
shld ebp, edi, cl
shl edi, cl
test cl, 0x20
cmovne ebp, edi
mov edx, ebp
mov ebp, 0
cmovne edi, ebp
mov ecx, dword [esp + 0xc]
shrd esi, ebx, cl
shr ebx, cl
test cl, 0x20
cmovne esi, ebx
cmovne ebx, ebp
or esi, edi
mov dword [esp + 0xc], esi
mov ebp, dword [esp + 0x10]
or ebx, edx
mov dword [esp + 4], ebx
cmp dword [esp + 0x20], 0
mov ebx, dword [esp + 8]
mov edi, dword [esp]
mov edx, dword [esp + 0x1c]
jne 0x100095fb
cmp dword [esp + 0x30], 0x15
ja 0x10009634
mov dword [esp + 8], ebx
mov dword [esp + 0x10], ebp
mov dword [esp], edi
mov ebp, dword [esp + 0x28]
and ebp, 0xfffffffc
xor ebx, ebx
mov edi, 0xcccccccc
inc edi
sete bl
mov eax, ebp
mul edi
mov dword [esp + 0x1c], edx
mov eax, ebp
mov ecx, 0xcccccccc
mul ecx
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
imul ebp, ebx
mov ecx, dword [esp + 0x24]
mov eax, ecx
mul edi
mov edi, eax
mov esi, edx
add ebp, dword [esp + 0x1c]
imul ebx, ecx
mov eax, ecx
mov ecx, 0xcccccccc
mul ecx
add edi, ebp
mov ebp, dword [esp + 0x28]
adc esi, ebx
and edi, 0xfffffff0
add edi, dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
adc ecx, 0
add esi, eax
adc edx, 0
add esi, ecx
adc edx, 0
shld edx, esi, 0x1e
lea eax, [edx + edx*4]
cmp eax, ebp
jne 0x1000951c
mov edx, 0xffffffff
mov edi, dword [esp + 0x24]
nop word cs:[eax + eax]
mov dword [esp + 0x24], edx
xor ebx, ebx
mov ecx, 0xcccccccc
inc ecx
sete bl
mov eax, ebp
mul ecx
mov dword [esp + 0x20], edx
mov eax, ebp
mov edx, 0xcccccccc
mul edx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x18], edx
mov dword [esp + 0x28], ebp
imul ebp, ebx
mov eax, edi
mul ecx
mov esi, edi
mov edi, eax
mov ecx, edx
add ebp, dword [esp + 0x20]
imul ebx, esi
mov eax, esi
mov edx, 0xcccccccc
mul edx
add edi, ebp
adc ecx, ebx
and edi, 0xfffffffc
add edi, dword [esp + 0x2c]
mov esi, dword [esp + 0x18]
adc esi, 0
add ecx, eax
mov edi, edx
mov edx, dword [esp + 0x24]
adc edi, 0
add ecx, esi
adc edi, 0
shrd ecx, edi, 2
shr edi, 2
lea eax, [ecx + ecx*4]
inc edx
cmp eax, dword [esp + 0x28]
mov ebp, ecx
je 0x10009490
cmp edx, dword [esp + 0x30]
setae dl
xor eax, eax
jmp 0x100097b7
mov eax, dword [esp + 0x68]
test al, 1
je 0x1000970f
or ebp, 2
mov edx, 0xffffffff
mov edi, dword [esp + 0x24]
nop word cs:[eax + eax]
mov dword [esp + 0x24], edx
xor ebx, ebx
mov ecx, 0xcccccccc
inc ecx
sete bl
mov eax, ebp
mul ecx
mov dword [esp + 0x20], edx
mov eax, ebp
mov edx, 0xcccccccc
mul edx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x18], edx
mov dword [esp + 0x28], ebp
imul ebp, ebx
mov eax, edi
mul ecx
mov esi, edi
mov edi, eax
mov ecx, edx
add ebp, dword [esp + 0x20]
imul ebx, esi
mov eax, esi
mov edx, 0xcccccccc
mul edx
add edi, ebp
adc ecx, ebx
and edi, 0xfffffffc
add edi, dword [esp + 0x2c]
mov esi, dword [esp + 0x18]
adc esi, 0
add ecx, eax
mov edi, edx
mov edx, dword [esp + 0x24]
adc edi, 0
add ecx, esi
adc edi, 0
shrd ecx, edi, 2
shr edi, 2
lea eax, [ecx + ecx*4]
inc edx
cmp eax, dword [esp + 0x28]
mov ebp, ecx
je 0x10009540
xor eax, eax
cmp edx, dword [esp + 0x30]
setae al
mov ebx, dword [esp + 8]
sub ebx, eax
sbb dword [esp + 0x14], 0
xor edx, edx
xor eax, eax
mov edi, dword [esp]
mov ebp, dword [esp + 0x10]
jmp 0x10009888
mov dword [esp + 4], ebx
mov dword [esp + 0xc], esi
mov ebx, dword [esp + 8]
mov eax, edx
mov edi, dword [esp]
mov ebp, dword [esp + 0x10]
mov edx, dword [esp + 0x1c]
mov cl, 0x81
sub cl, dl
mov esi, dword [esp + 0x3c]
shld esi, eax, cl
shl eax, cl
xor edx, edx
test cl, 0x20
cmovne esi, eax
cmovne eax, edx
mov ecx, dword [esp + 0x20]
shrd edi, ebp, cl
shr ebp, cl
test cl, 0x20
cmovne edi, ebp
cmovne ebp, edx
or ebp, esi
or edi, eax
cmp dword [esp + 0x30], 0x15
jbe 0x100093f4
xor edx, edx
xor eax, eax
jmp 0x10009888
mov dword [esp + 0x20], edi
mov edi, ecx
mov eax, edi
mov esi, dword [esp + 0x3c]
shld eax, esi, 1
mov ecx, dword [esp + 0x30]
shld esi, ecx, 1
add ecx, ecx
mov edx, ebp
shld edx, edi, 1
mov dword [esp + 0x30], eax
sub eax, dword [esp + 0x44]
mov ebx, edx
sbb ebx, dword [esp + 0x48]
cmp ecx, dword [esp + 4]
sbb esi, dword [esp + 0xc]
sbb eax, 0
sbb ebx, 0
mov esi, dword [esp + 0x34]
add esi, 0xffffffc0
mov dword [esp + 0xc], esi
je 0x100097c3
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x40]
shld esi, ecx, 1
mov ecx, dword [esp + 0x30]
cmp ecx, edi
mov edi, edx
sbb edi, dword [esp + 0x10]
setb byte [esp + 4]
cmp ecx, eax
movzx ecx, byte [esp + 4]
mov edi, dword [esp + 0x40]
lea edi, [ecx + edi*2]
sbb edx, ebx
sbb edi, 0
sbb esi, 0
mov cl, 0x80
mov edx, dword [esp + 0x34]
sub cl, dl
shld esi, edi, cl
shl edi, cl
xor ebp, ebp
test cl, 0x20
cmovne esi, edi
cmovne edi, ebp
mov ecx, dword [esp + 0xc]
shrd eax, ebx, cl
shr ebx, cl
test cl, 0x20
cmovne eax, ebx
cmovne ebx, ebp
or eax, edi
mov edi, dword [esp]
mov dword [esp + 0xc], eax
mov ebp, dword [esp + 0x10]
or ebx, esi
mov esi, dword [esp + 0x1c]
mov dword [esp + 4], ebx
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x100097d7
jmp 0x10009802
movzx eax, byte [esp + 0x2c]
not eax
add eax, ebp
mov edi, dword [esp + 0x24]
adc edi, 0xffffffff
mov ecx, 0xffffffff
nop word cs:[eax + eax]
mov dword [esp + 0x28], ecx
xor ebx, ebx
mov esi, 0xcccccccc
inc esi
sete bl
mov ebp, eax
mov dword [esp + 0x24], eax
mul esi
mov dword [esp + 0x20], edx
mov eax, ebp
mov ecx, 0xcccccccc
mul ecx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x18], edx
imul ebp, ebx
mov eax, edi
mul esi
mov ecx, edi
mov edi, eax
mov esi, edx
add ebp, dword [esp + 0x20]
imul ebx, ecx
mov eax, ecx
mov ecx, dword [esp + 0x28]
mov edx, 0xcccccccc
mul edx
add edi, ebp
adc esi, ebx
and edi, 0xfffffffc
add edi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x18]
adc ebx, 0
add esi, eax
mov edi, edx
adc edi, 0
add esi, ebx
adc edi, 0
shrd esi, edi, 2
shr edi, 2
lea eax, [esi + esi*4]
inc ecx
cmp eax, dword [esp + 0x24]
mov eax, esi
je 0x10009730
cmp ecx, dword [esp + 0x30]
setae al
xor edx, edx
mov edi, dword [esp]
mov ebp, dword [esp + 0x10]
jmp 0x10009872
mov dword [esp + 4], ebx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x34]
mov esi, dword [esp + 0x1c]
mov cl, 0x81
sub cl, dl
mov ebx, dword [esp + 0x40]
shld esi, ebx, cl
shl ebx, cl
xor edx, edx
test cl, 0x20
cmovne esi, ebx
cmovne ebx, edx
mov ecx, eax
shrd edi, ebp, cl
shr ebp, cl
test al, 0x20
cmovne edi, ebp
cmovne ebp, edx
or ebp, esi
or edi, ebx
mov eax, dword [esp + 0x68]
mov ebx, dword [esp + 0x2c]
mov esi, dword [esp + 0x24]
mov ecx, dword [esp + 0x18]
cmp ecx, 1
ja 0x10009837
mov dword [esp + 0x10], ebp
and eax, 1
sete cl
sub dword [esp + 8], eax
sbb dword [esp + 0x14], 0
and bl, cl
mov dword [esp + 0x2c], ebx
mov dl, 1
jmp 0x100099fe
xor ebx, ebx
cmp ecx, 0x3e
ja 0x10009878
dec cl
mov eax, 0xffffffff
shl eax, cl
test cl, 0x20
mov ecx, 0xffffffff
cmovne ecx, eax
cmovne eax, ebx
not ecx
and esi, ecx
not eax
mov edx, dword [esp + 0x28]
and edx, eax
or edx, esi
sete bl
xor eax, eax
mov edx, dword [esp + 0x38]
mov dword [esp + 0x30], edx
mov edx, ebx
mov ebx, dword [esp + 8]
jmp 0x10009888
xor eax, eax
mov edx, dword [esp + 0x38]
mov dword [esp + 0x30], edx
mov ebx, dword [esp + 8]
xor edx, edx
test dl, dl
mov dword [esp + 0x10], ebp
mov dword [esp + 8], ebx
jne 0x100099f2
test al, al
jne 0x100099f2
mov dword [esp], edi
mov esi, dword [esp + 0x14]
mov ecx, esi
shld ecx, ebx, 0x1e
mov ebx, 0x5c28f5c3
mov eax, ecx
mul ebx
mov dword [esp + 0x18], edx
mov ebp, 0x28f5c28f
mov eax, ecx
mul ebp
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], edx
mov dword [esp + 0x14], esi
mov ecx, esi
shr ecx, 2
mov eax, ecx
mul ebx
mov esi, edx
mov edi, eax
mov eax, ecx
mul ebp
mov ecx, eax
mov ebp, edx
add edi, dword [esp + 0x18]
adc ecx, esi
adc ebp, 0
add edi, dword [esp + 0x24]
adc ecx, dword [esp + 0x28]
adc ebp, 0
shrd ecx, ebp, 2
mov edi, dword [esp + 4]
mov esi, edi
mov eax, dword [esp + 0xc]
shld esi, eax, 0x1e
mov eax, esi
mul ebx
mov dword [esp + 0x18], edx
mov eax, esi
mov edx, 0x28f5c28f
mul edx
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], edx
mov dword [esp + 4], edi
mov esi, edi
shr esi, 2
mov eax, esi
mul ebx
mov edi, eax
mov ebx, edx
shr ebp, 2
mov eax, esi
mov edx, 0x28f5c28f
mul edx
add edi, dword [esp + 0x18]
adc eax, ebx
adc edx, 0
add edi, dword [esp + 0x24]
mov esi, eax
adc esi, dword [esp + 0x28]
adc edx, 0
shrd esi, edx, 2
shr edx, 2
cmp esi, ecx
mov eax, edx
sbb eax, ebp
jae 0x10009dbe
mov dword [esp + 4], edx
mov dword [esp + 0xc], esi
mov dword [esp + 0x28], ebp
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x10]
mov esi, ecx
mov ebx, dword [esp]
shld esi, ebx, 0x1e
mov eax, esi
mov edi, 0x5c28f5c3
mul edi
mov ebp, edx
mov eax, esi
mov edx, 0x28f5c28f
mul edx
mov dword [esp + 0x24], eax
mov dword [esp + 0x14], 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, ebp
adc eax, esi
adc edx, 0
add edi, dword [esp + 0x24]
adc eax, dword [esp + 0x14]
adc edx, 0
shrd eax, edx, 2
shr edx, 2
mov dword [esp + 0x10], edx
imul ecx, eax, 0xffffff9c
add ecx, ebx
cmp ecx, 0x32
setae cl
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x18], 2
mov dword [esp], eax
jmp 0x10009e83
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x38], eax
mov dword [esp + 0x28], edx
mov dword [esp], edi
mov dword [esp + 0x24], 0
mov dword [esp + 0x18], 0
nop word cs:[eax + eax]
xor ebx, ebx
mov edi, 0xcccccccc
inc edi
sete bl
mov ecx, dword [esp + 8]
mov eax, ecx
mul edi
mov dword [esp + 0x20], edi
mov dword [esp + 0x30], edx
mov ebp, ecx
mov eax, ecx
mov ecx, 0xcccccccc
mul ecx
mov dword [esp + 0x1c], eax
mov dword [esp + 8], edx
imul ebp, ebx
add ebp, dword [esp + 0x30]
mov esi, dword [esp + 0x14]
mov eax, esi
mul edi
mov edi, eax
mov ecx, esi
imul ecx, ebx
mov eax, esi
mov esi, edx
mov edx, 0xcccccccc
mul edx
add edi, ebp
adc esi, ecx
and edi, 0xfffffffc
add edi, dword [esp + 0x1c]
mov ecx, dword [esp + 8]
adc ecx, 0
add esi, eax
adc edx, 0
add esi, ecx
adc edx, 0
mov dword [esp + 0x14], edx
mov ecx, dword [esp + 0xc]
mov eax, ecx
mov ebp, dword [esp + 0x20]
mul ebp
mov edi, ecx
imul edi, ebx
add edi, edx
mov eax, ecx
mov ecx, 0xcccccccc
mul ecx
mov dword [esp + 0x30], eax
mov dword [esp + 0x1c], edx
mov eax, dword [esp + 0x14]
shrd esi, eax, 3
mov dword [esp + 8], esi
mov esi, dword [esp + 4]
mov eax, esi
mul ebp
mov ebp, eax
mov ecx, edx
shr dword [esp + 0x14], 3
imul ebx, esi
mov dword [esp + 0x20], ebx
mov eax, esi
mov edx, 0xcccccccc
mul edx
mov ebx, edx
add ebp, edi
adc ecx, dword [esp + 0x20]
and ebp, 0xfffffffc
add ebp, dword [esp + 0x30]
mov edx, dword [esp + 0x1c]
adc edx, 0
add ecx, eax
adc ebx, 0
add ecx, edx
adc ebx, 0
shrd ecx, ebx, 3
shr ebx, 3
cmp ecx, dword [esp + 8]
mov eax, ebx
sbb eax, dword [esp + 0x14]
jae 0x10009bef
xor eax, eax
mov esi, 0xcccccccc
inc esi
sete al
mov ebp, eax
mov dword [esp + 4], eax
mov eax, dword [esp]
mul esi
mov dword [esp + 0x30], edx
mov eax, dword [esp]
mov edx, 0xcccccccc
mul edx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], edx
mov edi, dword [esp]
imul edi, ebp
mov eax, dword [esp + 0x10]
mul esi
mov ebp, eax
mov esi, edx
add edi, dword [esp + 0x30]
mov eax, dword [esp + 4]
mov edx, dword [esp + 0x10]
imul eax, edx
mov dword [esp + 4], eax
mov eax, edx
mov edx, 0xcccccccc
mul edx
add ebp, edi
adc esi, dword [esp + 4]
and ebp, 0xfffffffc
add ebp, dword [esp + 0x1c]
mov edi, dword [esp + 0x20]
adc edi, 0
add esi, eax
mov eax, edx
adc eax, 0
add esi, edi
adc eax, 0
mov edi, eax
shld edi, esi, 0x1d
shr esi, 2
and esi, 0xfffffffe
lea edx, [esi + esi*4]
neg edx
add dl, byte [esp]
mov ebp, edx
lea esi, [ecx + ecx]
lea esi, [esi + esi*4]
shr eax, 3
mov dword [esp + 0x10], eax
cmp esi, dword [esp + 0xc]
sete al
mov edx, dword [esp + 0x2c]
and dl, al
mov dword [esp + 0x2c], edx
cmp byte [esp + 0x24], 0
sete al
mov edx, dword [esp + 0x28]
and dl, al
mov dword [esp + 0x28], edx
inc dword [esp + 0x18]
mov dword [esp + 0xc], ecx
mov dword [esp + 4], ebx
mov eax, ebp
mov dword [esp + 0x24], eax
mov dword [esp], edi
jmp 0x10009a20
mov edi, dword [esp + 4]
mov ebp, dword [esp + 0xc]
mov eax, dword [esp + 0x28]
and al, 1
mov dword [esp + 0x28], eax
mov ecx, dword [esp + 0x2c]
xor cl, 1
test cl, 1
jne 0x10009d5e
mov dword [esp + 0x2c], ecx
mov dword [esp + 4], edi
nop dword [eax]
mov dword [esp + 0xc], ebp
xor ebx, ebx
mov ecx, 0xcccccccc
inc ecx
sete bl
mov eax, ebp
mul ecx
mov edi, edx
mov esi, ebp
mov eax, ebp
mov edx, 0xcccccccc
mul edx
mov dword [esp + 8], eax
mov dword [esp + 0x14], edx
imul esi, ebx
add esi, edi
mov edi, dword [esp + 4]
mov eax, edi
mul ecx
mov ebp, eax
mov ecx, edx
imul ebx, edi
mov eax, edi
mov edx, 0xcccccccc
mul edx
mov edi, edx
add ebp, esi
adc ecx, ebx
and ebp, 0xfffffffc
add ebp, dword [esp + 8]
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x14]
adc esi, 0
add ecx, eax
adc edi, 0
add ecx, esi
adc edi, 0
shrd ecx, edi, 3
lea eax, [ecx + ecx]
lea eax, [eax + eax*4]
cmp eax, edx
jne 0x10009d66
shr edi, 3
xor eax, eax
mov esi, 0xcccccccc
inc esi
sete al
mov ebp, eax
mov dword [esp + 0x14], eax
mov ebx, dword [esp]
mov eax, ebx
mul esi
mov dword [esp + 8], edx
mov eax, ebx
mov edx, 0xcccccccc
mul edx
mov dword [esp + 4], eax
mov dword [esp + 0xc], edx
mov ebx, dword [esp]
imul ebx, ebp
mov eax, dword [esp + 0x10]
mul esi
mov ebp, eax
mov esi, edx
add ebx, dword [esp + 8]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
imul eax, edx
mov dword [esp + 0x14], eax
mov eax, edx
mov edx, 0xcccccccc
mul edx
add ebp, ebx
adc esi, dword [esp + 0x14]
and ebp, 0xfffffffc
add ebp, dword [esp + 4]
mov ebp, dword [esp + 0xc]
adc ebp, 0
add esi, eax
mov ebx, edx
adc ebx, 0
add esi, ebp
adc ebx, 0
mov eax, ebx
shld eax, esi, 0x1d
shr esi, 2
and esi, 0xfffffffe
lea edx, [esi + esi*4]
neg edx
add dl, byte [esp]
shr ebx, 3
mov dword [esp + 0x10], ebx
cmp byte [esp + 0x24], 0
sete byte [esp]
cmp byte [esp + 0x28], 0
setne bl
and bl, byte [esp]
mov dword [esp + 0x28], ebx
inc dword [esp + 0x18]
mov ebp, ecx
mov dword [esp + 4], edi
mov dword [esp + 0x24], edx
mov dword [esp], eax
jmp 0x10009c20
mov eax, dword [esp + 0x68]
mov edx, ebp
jmp 0x10009d72
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x2c]
test al, 1
sete al
xor cl, 1
test al, cl
mov eax, dword [esp + 0x64]
mov esi, dword [esp + 0x10]
mov ebp, dword [esp + 0x38]
jne 0x10009d9d
mov ch, 1
xor edx, dword [esp]
xor edi, esi
or edi, edx
jne 0x10009d9d
mov ebx, dword [esp]
jmp 0x10009fa8
cmp byte [esp + 0x28], 0
sete cl
cmp byte [esp + 0x24], 5
setne ch
setae dl
or ch, cl
mov ebx, dword [esp]
or ch, bl
and ch, dl
jmp 0x10009fa8
mov dword [esp + 0x1c], 0
mov eax, dword [esp + 0x14]
mov dword [esp + 0x28], eax
mov dword [esp + 0x18], 0
jmp 0x10009e83
xor eax, eax
mov esi, 0xcccccccc
inc esi
sete al
mov ebx, eax
mov dword [esp + 0x14], eax
mov ecx, dword [esp]
mov eax, ecx
mul esi
mov dword [esp + 0x24], edx
mov eax, ecx
mov edx, 0xcccccccc
mul edx
mov dword [esp + 4], eax
mov dword [esp + 0xc], edx
imul ecx, ebx
mov eax, dword [esp + 0x10]
mul esi
mov ebx, eax
mov esi, edx
add ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
imul eax, edx
mov dword [esp + 0x14], eax
mov eax, edx
mov edx, 0xcccccccc
mul edx
add ebx, ecx
adc esi, dword [esp + 0x14]
and ebx, 0xfffffffc
add ebx, dword [esp + 4]
mov ecx, dword [esp + 0xc]
adc ecx, 0
add esi, eax
adc edx, 0
add esi, ecx
adc edx, 0
shrd esi, edx, 3
lea eax, [esi + esi]
lea eax, [eax + eax*4]
mov ecx, dword [esp]
sub ecx, eax
shr edx, 3
mov dword [esp + 0x10], edx
cmp ecx, 5
setae al
mov dword [esp + 0x1c], eax
inc dword [esp + 0x18]
mov dword [esp + 0xc], edi
mov dword [esp + 4], ebp
mov dword [esp], esi
xor eax, eax
mov ebp, 0xcccccccc
inc ebp
sete al
mov edi, eax
mov esi, dword [esp + 8]
mov eax, esi
mul ebp
mov dword [esp + 0x24], ebp
mov dword [esp + 0x20], edx
mov ecx, esi
mov eax, esi
mov edx, 0xcccccccc
mul edx
mov dword [esp + 0x2c], eax
mov dword [esp + 8], edx
imul ecx, edi
mov dword [esp + 0x14], edi
add ecx, dword [esp + 0x20]
mov ebx, dword [esp + 0x28]
mov eax, ebx
mul ebp
mov ebp, eax
mov esi, ebx
imul esi, edi
mov eax, ebx
mov ebx, edx
mov edx, 0xcccccccc
mul edx
add ebp, ecx
adc ebx, esi
and ebp, 0xfffffffc
add ebp, dword [esp + 0x2c]
mov esi, dword [esp + 8]
adc esi, 0
mov ecx, ebx
add ecx, eax
mov ebx, edx
adc ebx, 0
add ecx, esi
mov ebp, ecx
adc ebx, 0
mov esi, dword [esp + 0xc]
mov eax, esi
mov edi, dword [esp + 0x24]
mul edi
mov ecx, esi
imul ecx, dword [esp + 0x14]
add ecx, edx
mov eax, esi
mov edx, 0xcccccccc
mul edx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x28], edx
shrd ebp, ebx, 3
mov dword [esp + 8], ebp
mov ebp, dword [esp + 4]
mov eax, ebp
mul edi
mov esi, eax
mov edi, edx
shr ebx, 3
mov eax, dword [esp + 0x14]
imul eax, ebp
mov dword [esp + 0x14], eax
mov eax, ebp
mov edx, 0xcccccccc
mul edx
mov ebp, edx
add esi, ecx
adc edi, dword [esp + 0x14]
and esi, 0xfffffffc
add esi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
adc ecx, 0
add edi, eax
adc ebp, 0
add edi, ecx
adc ebp, 0
shrd edi, ebp, 3
shr ebp, 3
cmp edi, dword [esp + 8]
mov eax, ebp
mov dword [esp + 0x28], ebx
sbb eax, ebx
jb 0x10009de0
mov ebx, dword [esp]
mov eax, dword [esp + 0xc]
xor eax, ebx
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 4]
xor ecx, esi
or ecx, eax
sete ch
or ch, byte [esp + 0x1c]
mov ebp, dword [esp + 0x30]
mov eax, dword [esp + 0x64]
mov edx, dword [esp + 0x18]
movzx ecx, ch
and ecx, 1
add ecx, ebx
adc esi, 0
add ebp, edx
mov dword [eax + 8], ebp
mov dword [eax], ecx
mov dword [eax + 4], esi
add esp, 0x50
pop esi
pop edi
pop ebx
pop ebp
ret