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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x134
mov edi, dword [esp + 0x14c]
mov ebp, dword [esp + 0x150]
mov eax, dword [esp + 0x148]
xor ebx, ebx
mov ecx, edi
mov edx, edi
and ecx, 0xfffff
shr edx, 0x14
test edi, edi
js 0x10096360
mov esi, eax
and edx, 0x7ff
or esi, ecx
je 0x10096375
jmp 0x10096390
mov byte [ebp], 0x2d
mov ebx, 1
mov esi, eax
and edx, 0x7ff
or esi, ecx
jne 0x10096390
test edx, edx
jne 0x10096390
shr edi, 0x1f
mov byte [ebp + ebx + 2], 0x30
mov word [ebp + ebx], 0x2e30
add edi, 3
jmp 0x100977ba
mov edi, eax
mov ebp, ecx
mov dword [esp + 0x2c], ebx
lea esi, [edx - 0x435]
mov ebx, 0xfffffbcc
add edi, 0xffffffff
adc ebp, 0xfffff
add edi, 1
adc ebp, 0
test edx, edx
cmove edi, eax
cmove ebp, ecx
cmovne ebx, esi
shld ebp, edi, 2
or eax, ecx
lea esi, [edi*4]
mov dword [esp + 0x6c], edi
setne al
cmp edx, 2
mov dword [esp + 0x1c], esi
setb dl
or dl, al
test ebx, ebx
js 0x10096836
imul edi, ebx, 0x13441
movzx edx, dl
shr edi, 0x12
cmp ebx, 4
not edx
adc edi, 0xffffffff
mov dword [esp + 0x70], edx
imul eax, edi, 0x12934f
mov ecx, edi
mov dword [esp + 0x38], edi
sub ecx, ebx
shr eax, 0x13
mov ebx, esi
add ecx, eax
mov eax, edi
mov edi, esi
or ebx, 2
shl eax, 4
add edi, edx
mov edx, ebp
mov dword [esp + 0x3c], ebx
movdqu xmm0, xmmword [eax + 0x10154010]
mov eax, dword [eax + 0x10154010]
adc edx, 0xffffffff
mov dword [esp + 0x18], edi
mov dword [esp], edx
pshufd xmm1, xmm0, 0x55
mov dword [esp + 8], eax
mul ebx
movd eax, xmm1
mov dword [esp + 0xc], edx
pshufd xmm1, xmm0, 0xff
pshufd xmm0, xmm0, 0xee
mov dword [esp + 0x30], eax
mul ebx
mov esi, eax
mov eax, dword [esp + 8]
mov edi, edx
add esi, dword [esp + 0xc]
adc edi, 0
mul ebp
add esi, eax
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x68], edx
movd esi, xmm0
adc edi, edx
mov dword [esp + 0x34], esi
setb byte [esp + 0x14]
mul ebp
add edi, eax
mov dword [esp + 0x64], eax
movzx eax, byte [esp + 0x14]
mov dword [esp + 0x60], edx
mov dword [esp + 0xc], edi
adc eax, edx
mov dword [esp + 4], eax
mov eax, esi
mul ebx
mov dword [esp + 0x20], eax
movd eax, xmm1
mov dword [esp + 0x28], edx
mov dword [esp + 0x14], eax
mul ebx
mov ebx, eax
mov edi, edx
mov eax, esi
add ebx, dword [esp + 0x28]
adc edi, 0
mul ebp
add ebx, eax
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x58], edx
adc edi, edx
setb byte [esp + 0x28]
mul ebp
mov dword [esp + 0x54], eax
add edi, eax
movzx eax, byte [esp + 0x28]
mov dword [esp + 0x50], edx
adc eax, edx
mov edx, dword [esp + 0x20]
add edx, dword [esp + 0xc]
adc ebx, dword [esp + 4]
mov dword [esp + 0xb4], edx
mov dword [esp + 0xd0], 0
mov dword [esp + 0xcc], 0
mov dword [esp + 0xc8], 0
mov dword [esp + 0xc4], 0
adc edi, 0
mov dword [esp + 0xb8], ebx
adc eax, 0
add cl, 0x7d
mov dword [esp + 0xbc], edi
and cl, 0x7f
mov dword [esp + 0xc0], eax
xor cl, 0x40
mov ebx, ecx
shr cl, 3
movzx esi, cl
and bl, 7
mov eax, dword [esp + esi + 0xb8]
mov ecx, ebx
mov byte [esp + 0x28], bl
mov dword [esp + 0x24], esi
mov edi, esi
mov edx, eax
shr edx, cl
not cl
mov byte [esp + 0x20], cl
mov esi, dword [esp + esi + 0xbc]
add esi, esi
shl esi, cl
mov ecx, ebx
or esi, edx
mov dword [esp + 0xc], esi
mov esi, dword [esp + 0x18]
mov edx, dword [esp + edi + 0xb4]
shrd edx, eax, cl
mov ecx, dword [esp + 0x34]
mov eax, esi
mov dword [esp + 4], edx
mul ecx
mov dword [esp + 0x4c], eax
mov eax, dword [esp]
mov edi, edx
mul ecx
mov ecx, eax
mov ebx, edx
mov eax, esi
add ecx, edi
mov edi, dword [esp + 0x14]
adc ebx, 0
mul edi
add eax, ecx
mov esi, edx
adc esi, ebx
mov ebx, dword [esp]
mov dword [esp + 0x48], eax
setb cl
mov eax, ebx
mul edi
mov edi, dword [esp + 0x18]
add eax, esi
mov esi, dword [esp + 8]
mov dword [esp + 0x40], eax
movzx eax, cl
adc edx, eax
mov eax, edi
mov dword [esp + 0x44], edx
mul esi
mov eax, ebx
mov ecx, edx
mul esi
mov esi, eax
mov eax, edi
mov edi, dword [esp + 0x30]
mov ebx, edx
add esi, ecx
adc ebx, 0
mul edi
add eax, esi
mov eax, dword [esp]
mov ecx, edx
adc ecx, ebx
mov ebx, edi
setb byte [esp + 0x18]
mul edi
add eax, ecx
movzx ecx, byte [esp + 0x18]
adc edx, ecx
add eax, dword [esp + 0x4c]
adc edx, dword [esp + 0x48]
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], edx
mov eax, dword [esp + 0x40]
adc eax, 0
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x90], 0
mov dword [esp + 0x8c], 0
mov dword [esp + 0x88], 0
mov dword [esp + 0x84], 0
adc eax, 0
mov dword [esp + 0x80], eax
mov edi, dword [esp + 0x24]
mov ch, byte [esp + 0x28]
mov eax, dword [esp + edi + 0x78]
mov esi, dword [esp + edi + 0x7c]
mov cl, ch
mov edx, eax
add esi, esi
shr edx, cl
mov cl, byte [esp + 0x20]
shl esi, cl
mov cl, ch
or esi, edx
mov dword [esp + 0x18], esi
mov edx, dword [esp + edi + 0x74]
shrd edx, eax, cl
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x1c]
mov dword [esp], edx
mul ecx
mov eax, ebx
mov edi, edx
mul ecx
mov esi, edx
add eax, edi
adc esi, 0
add eax, dword [esp + 0x10]
adc esi, dword [esp + 0x68]
setb al
add esi, dword [esp + 0x64]
movzx ebx, al
mov eax, dword [esp + 0x34]
adc ebx, dword [esp + 0x60]
mul ecx
mov edi, eax
mov eax, dword [esp + 0x14]
mov dword [esp + 8], edx
mul ecx
add eax, dword [esp + 8]
adc edx, 0
add eax, dword [esp + 0x5c]
adc edx, dword [esp + 0x58]
setb cl
add edx, dword [esp + 0x54]
movzx ecx, cl
adc ecx, dword [esp + 0x50]
add edi, esi
mov dword [esp + 0xb0], 0
mov dword [esp + 0xac], 0
mov dword [esp + 0xa8], 0
mov dword [esp + 0xa4], 0
adc eax, ebx
mov dword [esp + 0x94], edi
adc edx, 0
mov dword [esp + 0x98], eax
mov dword [esp + 0x9c], edx
adc ecx, 0
mov dword [esp + 0xa0], ecx
mov edi, dword [esp + 0x24]
mov ch, byte [esp + 0x28]
mov eax, dword [esp + edi + 0x98]
mov esi, dword [esp + edi + 0x9c]
mov cl, ch
mov edi, dword [esp + edi + 0x94]
mov edx, eax
add esi, esi
shr edx, cl
mov cl, byte [esp + 0x20]
shl esi, cl
mov cl, ch
shrd edi, eax, cl
mov eax, dword [esp + 0x38]
or esi, edx
mov dword [esp + 8], edi
cmp eax, 0x16
jae 0x10096822
mov ecx, dword [esp + 0x1c]
mov edx, 0xcccccccd
mov dword [esp + 0x10], esi
mov edi, ecx
add ecx, ebp
adc ecx, 0
mov eax, ecx
mul edx
shr edx, 2
lea eax, [edx + edx*4]
cmp eax, ecx
jne 0x10096c57
mov ebx, 0xffffffff
nop dword [eax + eax]
mov ecx, edi
mov edx, 0xcccccccd
mov esi, edi
add ecx, ebp
adc ecx, 0
mov eax, ecx
mul edx
shr edx, 2
lea eax, [edx + edx*4]
sub ecx, eax
sub esi, ecx
mov ecx, 0xcccccccd
mov eax, esi
sbb ebp, 0
imul esi, esi, 0xcccccccc
inc ebx
mul ecx
imul ebp, ebp, 0xcccccccd
add esi, edx
lea edx, [eax + eax*4]
add ebp, esi
cmp edx, edi
mov edi, eax
je 0x100967d0
mov eax, dword [esp + 0x38]
cmp ebx, eax
jae 0x10096f2c
mov esi, dword [esp + 0x10]
mov dword [esp + 0x24], eax
mov edi, dword [esp]
mov ebx, dword [esp + 0xc]
mov ecx, dword [esp + 4]
jmp 0x10096cd5
imul ecx, ebx, 0xfff4d105
xor eax, eax
mov edi, 0x10155570
mov dword [esp + 0x20], edx
shr ecx, 0x14
cmp ebx, 0xffffffff
setne al
sub ecx, eax
add ebx, ecx
mov dword [esp + 0x68], ecx
imul eax, ebx, 0x3ed6cb1
mov dword [esp + 0x24], ebx
shr eax, 0x13
sub ecx, eax
mov eax, ebx
mov ebx, esi
shl eax, 4
mov dword [esp], ecx
or ebx, 2
sub edi, eax
mov eax, dword [edi]
mov ecx, dword [edi + 4]
mov dword [esp + 0x30], eax
mul ebx
mov eax, ecx
mov dword [esp + 0x14], ecx
mov dword [esp + 8], edx
mul ebx
mov esi, eax
mov eax, dword [esp + 0x30]
mov ecx, edx
add esi, dword [esp + 8]
adc ecx, 0
mul ebp
add esi, eax
mov dword [esp + 0x64], eax
mov eax, dword [edi + 0xc]
mov dword [esp + 0x60], edx
mov edi, dword [edi + 8]
adc ecx, edx
setb byte [esp + 0xc]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x28], edi
mul ebp
add ecx, eax
mov dword [esp + 0x5c], eax
movzx eax, byte [esp + 0xc]
mov dword [esp + 0x58], edx
mov dword [esp + 0x18], ecx
adc eax, edx
mov dword [esp + 0xc], eax
mov eax, edi
mul ebx
mov ecx, eax
mov eax, dword [esp + 8]
mov dword [esp + 4], edx
mul ebx
mov ebx, eax
mov esi, edx
mov eax, edi
add ebx, dword [esp + 4]
adc esi, 0
mul ebp
add ebx, eax
mov dword [esp + 0x54], eax
mov eax, dword [esp + 8]
mov dword [esp + 0x50], edx
adc esi, edx
setb byte [esp + 4]
mul ebp
mov dword [esp + 0x4c], eax
add esi, eax
movzx eax, byte [esp + 4]
mov dword [esp + 0x48], edx
adc eax, edx
add ecx, dword [esp + 0x18]
adc ebx, dword [esp + 0xc]
mov dword [esp + 0x114], ecx
adc esi, 0
mov dword [esp + 0x118], ebx
adc eax, 0
mov dword [esp + 0x11c], esi
mov dword [esp + 0x120], eax
mov eax, dword [esp]
mov dword [esp + 0x130], 0
mov dword [esp + 0x12c], 0
mov dword [esp + 0x128], 0
mov dword [esp + 0x124], 0
add al, 0x7c
and al, 0x7f
xor al, 0x40
mov ebx, eax
shr al, 3
movzx esi, al
and bl, 7
mov eax, dword [esp + esi + 0x118]
mov ecx, ebx
mov byte [esp + 0x10], bl
mov dword [esp + 0x38], esi
mov edi, esi
mov edx, eax
shr edx, cl
not cl
mov byte [esp + 0x34], cl
mov esi, dword [esp + esi + 0x11c]
add esi, esi
shl esi, cl
mov ecx, ebx
movzx ebx, byte [esp + 0x20]
or esi, edx
mov dword [esp + 0xc], esi
mov esi, ebp
mov edx, dword [esp + edi + 0x114]
not ebx
shrd edx, eax, cl
mov ecx, dword [esp + 0x30]
add ebx, dword [esp + 0x1c]
mov dword [esp + 4], edx
mov eax, ecx
adc esi, 0xffffffff
mul ebx
mov eax, dword [esp + 0x14]
mov dword [esp], esi
mov dword [esp + 0x18], edx
mul ebx
mov edi, eax
mov eax, ecx
add edi, dword [esp + 0x18]
adc edx, 0
mov dword [esp + 0x18], edx
mul esi
add eax, edi
mov ecx, edx
mov eax, dword [esp + 0x14]
adc ecx, dword [esp + 0x18]
setb byte [esp + 0x40]
mul esi
add eax, ecx
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x18], eax
movzx eax, byte [esp + 0x40]
adc edx, eax
mov eax, ecx
mov dword [esp + 0x40], edx
mul ebx
mov dword [esp + 0x44], eax
mov eax, dword [esp + 8]
mov dword [esp + 0x3c], edx
mul ebx
mov esi, eax
mov edi, edx
mov eax, ecx
add esi, dword [esp + 0x3c]
adc edi, 0
mul dword [esp]
mov ebx, eax
mov eax, dword [esp + 8]
mov ecx, edx
add ebx, esi
adc ecx, edi
setb byte [esp + 0x3c]
mul dword [esp]
add eax, ecx
movzx ecx, byte [esp + 0x3c]
adc edx, ecx
mov ecx, dword [esp + 0x44]
add ecx, dword [esp + 0x18]
adc ebx, dword [esp + 0x40]
mov dword [esp + 0xd4], ecx
mov dword [esp + 0xf0], 0
mov dword [esp + 0xec], 0
mov dword [esp + 0xe8], 0
mov dword [esp + 0xe4], 0
adc eax, 0
mov dword [esp + 0xd8], ebx
adc edx, 0
mov dword [esp + 0xdc], eax
mov dword [esp + 0xe0], edx
mov edi, dword [esp + 0x38]
mov ch, byte [esp + 0x10]
mov eax, dword [esp + edi + 0xd8]
mov esi, dword [esp + edi + 0xdc]
mov cl, ch
mov edx, eax
add esi, esi
shr edx, cl
mov cl, byte [esp + 0x34]
shl esi, cl
mov cl, ch
or esi, edx
mov dword [esp + 0x18], esi
mov edx, dword [esp + edi + 0xd4]
shrd edx, eax, cl
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x1c]
mov dword [esp], edx
mul ecx
mov eax, dword [esp + 0x14]
mov esi, edx
mul ecx
mov edi, edx
add eax, esi
adc edi, 0
add eax, dword [esp + 0x64]
adc edi, dword [esp + 0x60]
setb al
add edi, dword [esp + 0x5c]
movzx ebx, al
mov eax, dword [esp + 0x28]
adc ebx, dword [esp + 0x58]
mul ecx
mov esi, eax
mov eax, dword [esp + 8]
mov dword [esp + 0x14], edx
mul ecx
add eax, dword [esp + 0x14]
adc edx, 0
add eax, dword [esp + 0x54]
adc edx, dword [esp + 0x50]
setb cl
add edx, dword [esp + 0x4c]
movzx ecx, cl
adc ecx, dword [esp + 0x48]
add esi, edi
mov dword [esp + 0x110], 0
mov dword [esp + 0x10c], 0
mov dword [esp + 0x108], 0
mov dword [esp + 0x104], 0
adc eax, ebx
mov dword [esp + 0xf4], esi
adc edx, 0
mov dword [esp + 0xf8], eax
mov dword [esp + 0xfc], edx
adc ecx, 0
mov dword [esp + 0x100], ecx
mov edi, dword [esp + 0x38]
mov ch, byte [esp + 0x10]
mov eax, dword [esp + edi + 0xf8]
mov esi, dword [esp + edi + 0xfc]
mov cl, ch
mov edi, dword [esp + edi + 0xf4]
mov edx, eax
add esi, esi
shr edx, cl
mov cl, byte [esp + 0x34]
shl esi, cl
mov cl, ch
shrd edi, eax, cl
mov ecx, dword [esp + 0x68]
or esi, edx
mov dword [esp + 8], edi
cmp ecx, 2
jae 0x10096c1a
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x10], esi
mov edx, dword [esp + 0x20]
mov esi, dword [esp + 4]
mov ebx, dword [esp + 0xc]
and eax, 1
sete cl
and dl, cl
sub esi, eax
mov al, 1
mov dword [esp + 0x20], edx
sbb ebx, 0
mov dword [esp + 0x14], eax
jmp 0x10096fd5
mov ebx, dword [esp + 0xc]
cmp ecx, 0x3f
jae 0x10096c4e
mov eax, 0xffffffff
mov edx, 0xffffffff
xor edi, edi
shl eax, cl
test cl, 0x20
cmovne edx, eax
cmovne eax, edi
not edx
not eax
and ebp, edx
mov edx, dword [esp + 0x1c]
and edx, eax
or edx, ebp
je 0x10096fbf
mov edi, dword [esp]
mov ecx, dword [esp + 4]
jmp 0x10096cd5
test byte [esp + 0x6c], 1
je 0x10096f40
mov ebx, dword [esp + 0x3c]
mov edi, 0xffffffff
nop dword [eax + eax]
mov ecx, ebx
mov edx, 0xcccccccd
mov esi, ebx
add ecx, ebp
adc ecx, 0
mov eax, ecx
mul edx
shr edx, 2
lea eax, [edx + edx*4]
sub ecx, eax
sub esi, ecx
mov ecx, 0xcccccccd
mov eax, esi
sbb ebp, 0
imul esi, esi, 0xcccccccc
inc edi
mul ecx
imul ebp, ebp, 0xcccccccd
add esi, edx
lea edx, [eax + eax*4]
add ebp, esi
cmp edx, ebx
mov ebx, eax
je 0x10096c70
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 4]
mov ebx, dword [esp + 0xc]
xor eax, eax
mov esi, dword [esp + 0x10]
cmp edi, edx
mov edi, dword [esp]
mov dword [esp + 0x24], edx
setae al
sub ecx, eax
sbb ebx, 0
push 0
push 0x64
mov dword [esp + 0x14], ebx
push ebx
mov dword [esp + 0x10], ecx
push ecx
call fcn.1010cbf0
mov ebp, edx
mov ebx, eax
push 0
push 0x64
push dword [esp + 0x20]
mov dword [esp + 0xc], edi
push edi
call fcn.1010cbf0
cmp eax, ebx
mov ecx, edx
mov edi, eax
mov dword [esp + 0x14], 0
mov dword [esp + 0x1c], ebx
sbb ecx, ebp
jae 0x10096d53
mov ebx, ebp
push 0
push 0x64
push esi
mov esi, dword [esp + 0x14]
push esi
mov ebp, edx
call fcn.1010cbf0
imul ecx, eax, 0xffffff9c
mov dword [esp], edi
mov dword [esp + 0x10], edx
mov edi, ebx
mov dword [esp + 8], eax
add ecx, esi
mov esi, ebp
mov ebp, dword [esp + 0x1c]
mov dword [esp + 0x1c], 2
cmp ecx, 0x32
setae cl
mov dword [esp + 0x14], ecx
jmp 0x10096d6b
mov dword [esp + 0x10], esi
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0xc]
mov ebp, dword [esp + 4]
mov dword [esp + 0x1c], 0
shrd ebp, edi, 1
shr edi, 1
mov edx, 0xcccccccd
mov ebx, 0xcccccccd
mov dword [esp + 0x18], esi
mov ecx, ebp
add ecx, edi
adc ecx, 0
mov eax, ecx
mul edx
shr edx, 2
lea eax, [edx + edx*4]
sub ecx, eax
sub ebp, ecx
mov ecx, esi
mov eax, ebp
sbb edi, 0
shr ecx, 1
mul ebx
mov ebx, eax
imul eax, ebp, 0xcccccccc
imul ebp, edi, 0xcccccccd
mov edi, esi
add eax, edx
mov edx, 0xcccccccd
add ebp, eax
mov eax, dword [esp]
shld edi, eax, 0x1f
mov esi, edi
add esi, ecx
adc esi, 0
mov eax, esi
mul edx
shr edx, 2
lea eax, [edx + edx*4]
mov edx, 0xcccccccd
sub esi, eax
sub edi, esi
mov eax, edi
sbb ecx, 0
imul esi, edi, 0xcccccccc
mul edx
add esi, edx
imul edx, ecx, 0xcccccccd
add edx, esi
cmp eax, ebx
mov esi, edx
sbb esi, ebp
jae 0x10096f09
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 8]
nop word cs:[eax + eax]
nop
mov esi, ecx
mov dword [esp + 0x14], edi
shr ecx, 1
mov dword [esp + 0x18], edx
mov dword [esp], eax
mov edx, 0xcccccccd
shld esi, edi, 0x1f
mov edi, esi
add edi, ecx
adc edi, 0
mov eax, edi
mul edx
shr edx, 2
lea eax, [edx + edx*4]
sub edi, eax
sub esi, edi
mov edi, 0xcccccccd
mov eax, esi
sbb ecx, 0
imul esi, esi, 0xcccccccc
shrd ebx, ebp, 1
shr ebp, 1
inc dword [esp + 0x1c]
mul edi
imul ecx, ecx, 0xcccccccd
add esi, edx
mov dword [esp + 8], eax
add ecx, esi
mov esi, ebx
add esi, ebp
adc esi, 0
mov eax, esi
mul edi
shr edx, 2
lea eax, [edx + edx*4]
sub esi, eax
sub ebx, esi
mov eax, ebx
sbb ebp, 0
imul esi, ebx, 0xcccccccc
mov ebx, dword [esp + 0x18]
mul edi
imul ebp, ebp, 0xcccccccd
add esi, edx
mov edx, dword [esp]
mov dword [esp + 0xc], eax
add ebp, esi
mov esi, ebx
shr ebx, 1
shld esi, edx, 0x1f
mov edx, 0xcccccccd
mov edi, esi
add edi, ebx
adc edi, 0
mov eax, edi
mul edx
shr edx, 2
lea eax, [edx + edx*4]
mov edx, 0xcccccccd
sub edi, eax
sub esi, edi
mov edi, dword [esp + 8]
mov eax, esi
sbb ebx, 0
imul esi, esi, 0xcccccccc
mul edx
add esi, edx
imul edx, ebx, 0xcccccccd
mov ebx, dword [esp + 0xc]
add edx, esi
mov esi, edx
cmp eax, ebx
sbb esi, ebp
jb 0x10096e10
mov edx, dword [esp + 0x14]
mov eax, edi
mov ebp, ecx
add eax, edi
lea eax, [eax + eax*4]
sub edx, eax
cmp edx, 5
mov edx, edi
setae bl
jmp 0x10096f15
mov ebp, dword [esp + 0x10]
mov edx, dword [esp + 8]
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp]
mov eax, dword [esp + 0x18]
xor ecx, edx
xor eax, ebp
or eax, ecx
sete al
or al, bl
jmp 0x100973b3
mov cl, 1
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], eax
mov dword [esp + 0x14], ecx
jmp 0x10096fb9
mov ebx, edi
mov edi, 0xffffffff
add ebx, dword [esp + 0x70]
adc ebp, 0xffffffff
nop
mov ecx, ebx
mov edx, 0xcccccccd
mov esi, ebx
add ecx, ebp
adc ecx, 0
mov eax, ecx
mul edx
shr edx, 2
lea eax, [edx + edx*4]
sub ecx, eax
sub esi, ecx
mov ecx, 0xcccccccd
mov eax, esi
sbb ebp, 0
imul esi, esi, 0xcccccccc
inc edi
mul ecx
imul ebp, ebp, 0xcccccccd
add esi, edx
lea edx, [eax + eax*4]
add ebp, esi
cmp edx, ebx
mov ebx, eax
je 0x10096f50
mov ecx, dword [esp + 0x38]
cmp edi, ecx
jae 0x10096fa7
mov esi, dword [esp + 0x10]
mov dword [esp + 0x24], ecx
jmp 0x10096826
mov al, 1
mov dword [esp + 0x14], 0
mov dword [esp + 0x24], ecx
mov dword [esp + 0x20], eax
mov ebx, dword [esp + 0xc]
jmp 0x10096fd1
mov al, 1
mov dword [esp + 0x20], 0
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], eax
mov esi, dword [esp + 4]
shrd esi, ebx, 1
shr ebx, 1
mov edx, 0xcccccccd
mov edi, 0xcccccccd
mov dword [esp + 0xc], 0
mov ecx, esi
add ecx, ebx
adc ecx, 0
mov eax, ecx
mul edx
shr edx, 2
lea eax, [edx + edx*4]
sub ecx, eax
sub esi, ecx
mov eax, esi
sbb ebx, 0
mul edi
imul edi, ebx, 0xcccccccd
mov ebp, eax
imul eax, esi, 0xcccccccc
add eax, edx
mov edx, dword [esp]
add edi, eax
mov eax, dword [esp + 0x18]
mov ecx, eax
mov ebx, eax
shld ecx, edx, 0x1f
shr ebx, 1
mov edx, 0xcccccccd
mov esi, ecx
add esi, ebx
adc esi, 0
mov eax, esi
mul edx
shr edx, 2
lea eax, [edx + edx*4]
mov edx, 0xcccccccd
sub esi, eax
sub ecx, esi
mov esi, ebp
mov eax, ecx
sbb ebx, 0
imul ecx, ecx, 0xcccccccc
mul edx
imul ebp, ebx, 0xcccccccd
add ecx, edx
add ebp, ecx
cmp eax, esi
mov edx, ebp
sbb edx, edi
jae 0x100971e3
mov ecx, dword [esp]
mov ebx, dword [esp + 0x10]
mov edx, dword [esp + 8]
mov dword [esp + 0x30], ebp
mov ebp, esi
mov dword [esp + 0x1c], 0
mov dword [esp + 0x34], eax
mov dword [esp + 0x28], ecx
xor ecx, ecx
nop word cs:[eax + eax]
nop dword [eax]
mov esi, ebx
mov dword [esp + 0x10], ecx
shr ebx, 1
mov dword [esp + 8], edx
shld esi, edx, 0x1f
mov edx, 0xcccccccd
mov ecx, esi
add ecx, ebx
adc ecx, 0
mov eax, ecx
mul edx
shr edx, 2
lea eax, [edx + edx*4]
sub ecx, eax
sub esi, ecx
mov ecx, 0xcccccccd
mov eax, esi
sbb ebx, 0
mul ecx
imul ecx, esi, 0xcccccccc
imul ebx, ebx, 0xcccccccd
add ecx, edx
mov dword [esp + 4], eax
add ebx, ecx
mov ecx, eax
add ecx, eax
lea eax, [ecx + ecx*4]
mov ecx, dword [esp + 0x20]
neg eax
add al, byte [esp + 8]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x34]
mov dword [esp], eax
add eax, eax
lea eax, [eax + eax*4]
cmp eax, dword [esp + 0x28]
mov eax, dword [esp + 0x30]
mov dword [esp + 0x18], eax
sete al
and cl, al
cmp byte [esp + 0x10], 0
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x14]
sete al
shrd ebp, edi, 1
shr edi, 1
inc dword [esp + 0x1c]
mov esi, ebp
and cl, al
add esi, edi
mov dword [esp + 0x14], ecx
mov ecx, 0xcccccccd
adc esi, 0
mov eax, esi
mul ecx
shr edx, 2
lea eax, [edx + edx*4]
sub esi, eax
sub ebp, esi
mov eax, ebp
sbb edi, 0
imul esi, ebp, 0xcccccccc
mul ecx
mov ecx, dword [esp]
imul edi, edi, 0xcccccccd
add esi, edx
mov edx, dword [esp + 0x18]
mov dword [esp + 8], eax
add edi, esi
mov esi, edx
shld esi, ecx, 0x1f
mov ecx, edx
mov edx, 0xcccccccd
shr ecx, 1
mov ebp, esi
add ebp, ecx
adc ebp, 0
mov eax, ebp
mul edx
shr edx, 2
lea eax, [edx + edx*4]
mov edx, 0xcccccccd
sub ebp, eax
sub esi, ebp
mov ebp, dword [esp + 8]
mov eax, esi
sbb ecx, 0
imul esi, esi, 0xcccccccc
mul edx
add esi, edx
imul edx, ecx, 0xcccccccd
mov dword [esp + 0x34], eax
mov ecx, dword [esp + 0xc]
add edx, esi
cmp eax, ebp
mov esi, dword [esp]
mov eax, edx
mov dword [esp + 0x30], edx
sbb eax, edi
mov eax, dword [esp + 4]
mov dword [esp + 0x28], esi
mov edx, eax
jb 0x100970a0
jmp 0x100971f6
mov eax, dword [esp + 8]
mov ebx, dword [esp + 0x10]
mov esi, dword [esp]
mov dword [esp + 0x1c], 0
mov edx, dword [esp + 0x20]
mov dword [esp], esi
mov dword [esp + 0x10], ebx
xor dl, 1
mov dword [esp + 0x20], edx
jne 0x10097346
mov ebx, dword [esp + 0x18]
mov ebp, dword [esp]
mov dword [esp + 4], eax
mov edx, 0xcccccccd
mov esi, ebx
shr ebx, 1
shld esi, ebp, 0x1f
mov edi, esi
add edi, ebx
adc edi, 0
mov eax, edi
mul edx
shr edx, 2
lea eax, [edx + edx*4]
mov edx, 0xcccccccd
sub edi, eax
sub esi, edi
mov eax, esi
sbb ebx, 0
mul edx
lea edi, [eax + eax]
lea edi, [edi + edi*4]
cmp edi, ebp
jne 0x1009734a
mov dword [esp], eax
imul edi, ebx, 0xcccccccd
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 4]
imul esi, esi, 0xcccccccc
add edx, esi
add edi, edx
mov esi, ebx
shr ebx, 1
mov dword [esp + 4], eax
mov ecx, 0xcccccccd
mov dword [esp + 0x18], edi
shld esi, eax, 0x1f
mov ebp, esi
add ebp, ebx
adc ebp, 0
mov eax, ebp
mul ecx
shr edx, 2
lea eax, [edx + edx*4]
sub ebp, eax
sub esi, ebp
mov ebp, edi
mov eax, esi
sbb ebx, 0
mul ecx
imul ecx, esi, 0xcccccccc
imul ebx, ebx, 0xcccccccd
add ecx, edx
mov dword [esp + 8], eax
mov edx, 0xcccccccd
add ebx, ecx
mov ecx, eax
add ecx, eax
lea eax, [ecx + ecx*4]
mov ecx, dword [esp + 0x14]
neg eax
add al, byte [esp + 4]
cmp byte [esp + 0xc], 0
mov dword [esp + 4], eax
sete al
shr ebp, 1
inc dword [esp + 0x1c]
and cl, al
mov eax, dword [esp]
mov dword [esp + 0x14], ecx
mov ecx, edi
shld ecx, eax, 0x1f
mov esi, ecx
add esi, ebp
adc esi, 0
mov eax, esi
mul edx
shr edx, 2
lea eax, [edx + edx*4]
mov edx, 0xcccccccd
sub esi, eax
sub ecx, esi
mov esi, dword [esp + 8]
mov eax, ecx
sbb ebp, 0
imul ecx, ecx, 0xcccccccc
mul edx
imul edi, ebp, 0xcccccccd
mov ebp, dword [esp]
add ecx, edx
mov edx, dword [esp + 4]
mov dword [esp], eax
add edi, ecx
mov ecx, eax
add ecx, eax
mov eax, esi
lea ecx, [ecx + ecx*4]
cmp ecx, ebp
mov ecx, edx
mov dword [esp + 0xc], edx
je 0x10097270
jmp 0x10097359
mov esi, eax
jmp 0x1009734e
mov esi, dword [esp + 4]
mov ecx, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp]
mov dword [esp + 4], ecx
test byte [esp + 0x6c], 1
mov ecx, dword [esp + 0x20]
mov edx, esi
mov esi, dword [esp + 0x18]
sete al
xor cl, 1
test al, cl
jne 0x1009738e
mov ecx, edx
mov edi, edx
mov edx, ebx
mov al, 1
xor ecx, ebp
xor edx, esi
or edx, ecx
mov edx, edi
jne 0x1009738e
mov edx, ebp
mov ebp, esi
jmp 0x100973b3
mov ecx, dword [esp + 4]
mov eax, edx
mov ebp, ebx
and al, 1
or al, 4
movzx eax, al
cmp cl, 5
movzx ecx, cl
cmovne eax, ecx
cmp byte [esp + 0x14], 0
cmove eax, ecx
cmp al, 5
setae al
mov ecx, dword [esp + 0x24]
mov esi, dword [esp + 0x1c]
movzx eax, al
mov edi, 0x11
add eax, edx
mov edx, eax
mov eax, 0x6fc0ffff
adc ebp, 0
add esi, ecx
cmp eax, edx
mov ecx, 0x2386f2
sbb ecx, ebp
jb 0x1009756c
mov eax, 0xa4c67fff
mov ecx, 0x38d7e
mov edi, 0x10
cmp eax, edx
sbb ecx, ebp
jb 0x1009756c
mov eax, 0x107a3fff
mov ecx, 0x5af3
mov edi, 0xf
cmp eax, edx
sbb ecx, ebp
jb 0x1009756c
mov ecx, ebp
mov ebx, esi
mov dword [esp], edx
mov esi, 0x48c27394
xor eax, eax
mov edi, 0xe
shld ecx, edx, 0x13
mov edx, ebp
shr edx, 0xd
cmp esi, ecx
mov ecx, 0
mov esi, ebx
sbb ecx, edx
mov edx, dword [esp]
jb 0x1009756c
mov ecx, ebp
mov esi, 0xe8d4a50
mov edi, 0xd
shld ecx, edx, 0x14
mov edx, ebp
shr edx, 0xc
cmp esi, ecx
mov esi, ebx
sbb eax, edx
mov edx, dword [esp]
jb 0x1009756c
mov ecx, ebp
mov esi, 0x2e90edc
xor eax, eax
mov edi, 0xc
shld ecx, edx, 0x15
mov edx, ebp
shr edx, 0xb
cmp esi, ecx
mov ecx, 0
mov esi, ebx
sbb ecx, edx
mov edx, dword [esp]
jb 0x1009756c
mov ecx, ebp
mov esi, 0x9502f8
mov edi, 0xb
shld ecx, edx, 0x16
mov edx, ebp
shr edx, 0xa
cmp esi, ecx
mov esi, ebx
sbb eax, edx
mov edx, dword [esp]
jb 0x1009756c
mov ecx, 0x3b9ac9ff
xor eax, eax
mov ebx, 0
mov edi, 0xa
cmp ecx, edx
sbb ebx, ebp
jb 0x1009756c
mov ecx, 0x5f5e0ff
mov edi, 9
cmp ecx, edx
sbb eax, ebp
jb 0x1009756c
mov ecx, 0x98967f
xor eax, eax
mov ebx, 0
mov edi, 8
cmp ecx, edx
sbb ebx, ebp
jb 0x1009756c
mov ecx, 0xf423f
mov edi, 7
cmp ecx, edx
sbb eax, ebp
jb 0x1009756c
mov ecx, 0x1869f
xor eax, eax
mov ebx, 0
mov edi, 6
cmp ecx, edx
sbb ebx, ebp
jb 0x1009756c
mov ecx, 0x270f
mov edi, 5
cmp ecx, edx
sbb eax, ebp
jb 0x1009756c
mov ecx, 0x3e7
xor eax, eax
mov ebx, 0
mov edi, 4
cmp ecx, edx
sbb ebx, ebp
jb 0x1009756c
mov ecx, 0x63
mov edi, 3
cmp ecx, edx
sbb eax, ebp
jb 0x1009756c
mov eax, 9
xor edi, edi
mov ecx, 0
cmp eax, edx
sbb ecx, ebp
adc edi, 1
lea ebx, [edi + esi]
test esi, esi
mov dword [esp + 0x10], ebp
js 0x100975c8
cmp ebx, 0x11
jge 0x100975c8
mov dword [esp + 0x1c], esi
mov esi, dword [esp + 0x150]
mov ebp, dword [esp + 0x2c]
mov ecx, edx
mov edx, dword [esp + 0x10]
lea eax, [esi + ebp]
add eax, edi
push eax
call fcn.100961c0
add esp, 4
cmp edi, ebx
jge 0x100975b6
add edi, esi
add edi, ebp
push dword [esp + 0x1c]
push 0x30
push edi
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea eax, [ebx + ebp]
lea edi, [ebx + ebp + 2]
mov word [esi + eax], 0x302e
jmp 0x100977ba
lea esi, [ebx - 1]
cmp esi, 0x10
jae 0x10097614
mov ebp, dword [esp + 0x2c]
mov ecx, dword [esp + 0x150]
lea eax, [ebp + edi]
mov esi, ecx
lea edi, [ebp + edi + 1]
lea eax, [ecx + eax + 1]
mov ecx, edx
mov edx, dword [esp + 0x10]
push eax
call fcn.100961c0
add esp, 4
mov eax, esi
add esi, ebp
lea eax, [eax + ebp + 1]
push ebx
push eax
push esi
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov byte [ebx + esi], 0x2e
jmp 0x100977ba
lea eax, [ebx + 4]
cmp eax, 5
jae 0x1009767c
mov esi, dword [esp + 0x150]
mov eax, dword [esp + 0x2c]
mov ebp, 2
sub ebp, ebx
test ebx, ebx
mov word [esi + eax], 0x2e30
jns 0x10097662
mov eax, dword [esp + 0x2c]
cmp ebp, 4
mov ecx, 3
cmovge ecx, ebp
add ecx, 0xfffffffe
lea eax, [esi + eax + 2]
push ecx
push 0x30
push eax
mov ebx, edx
call sub.VCRUNTIME140.dll_memset
mov eax, dword [esp + 0x38]
mov edx, ebx
add esp, 0xc
add edi, eax
mov ecx, edx
mov edx, dword [esp + 0x10]
add edi, ebp
add esi, edi
push esi
call fcn.100961c0
add esp, 4
jmp 0x100977ba
cmp edi, 1
jne 0x100976a3
mov eax, dword [esp + 0x150]
mov ebp, dword [esp + 0x2c]
add dl, 0x30
test esi, esi
lea edi, [eax + ebp + 2]
mov byte [eax + ebp], dl
mov byte [eax + ebp + 1], 0x65
js 0x100976ed
mov ecx, esi
jmp 0x100976f8
mov eax, dword [esp + 0x2c]
mov ecx, edx
mov edx, dword [esp + 0x10]
lea ebp, [edi + eax]
mov eax, dword [esp + 0x150]
lea eax, [eax + ebp + 1]
push eax
call fcn.100961c0
add esp, 4
mov ecx, dword [esp + 0x150]
mov edx, dword [esp + 0x2c]
test esi, esi
movzx eax, byte [ecx + edx + 1]
mov byte [ecx + edx], al
mov byte [ecx + edx + 1], 0x2e
mov byte [ecx + ebp + 1], 0x65
lea ebp, [ecx + ebp + 2]
js 0x10097742
mov ecx, esi
jmp 0x1009774e
mov ecx, 1
mov byte [edi], 0x2d
inc edi
sub ecx, ebx
or ebp, 2
cmp ecx, 0x63
jle 0x1009772a
mov edx, 0x51eb851f
mov eax, ecx
shr esi, 0x1f
mul edx
add esi, 3
shr edx, 5
imul eax, edx, 0x64
add dl, 0x30
mov byte [edi], dl
sub ecx, eax
movzx eax, word [ecx + ecx + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899_]
mov word [edi + 1], ax
jmp 0x100977a8
cmp ecx, 9
jle 0x1009779f
movzx eax, word [ecx + ecx + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899_]
shr esi, 0x1f
or esi, 2
mov word [edi], ax
jmp 0x100977a8
mov ecx, 1
mov byte [ebp], 0x2d
inc ebp
sub ecx, ebx
mov eax, dword [esp + 0x2c]
cmp ecx, 0x63
lea edi, [edi + eax + 2]
jle 0x10097786
mov edx, 0x51eb851f
mov eax, ecx
shr esi, 0x1f
mul edx
add esi, 3
shr edx, 5
imul eax, edx, 0x64
add dl, 0x30
mov byte [ebp], dl
sub ecx, eax
movzx eax, word [ecx + ecx + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899_]
mov word [ebp + 1], ax
jmp 0x100977b6
cmp ecx, 9
jle 0x100977ac
movzx eax, word [ecx + ecx + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899_]
shr esi, 0x1f
or esi, 2
mov word [ebp], ax
jmp 0x100977b6
shr esi, 0x1f
add cl, 0x30
inc esi
mov byte [edi], cl
add esi, ebp
jmp 0x100977b8
shr esi, 0x1f
add cl, 0x30
inc esi
mov byte [ebp], cl
add esi, edi
mov edi, esi
mov eax, edi
add esp, 0x134
pop esi
pop edi
pop ebx
pop ebp
ret