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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x130
mov edi, dword [esp + 0x148]
mov ebp, dword [esp + 0x14c]
mov eax, dword [esp + 0x144]
xor ebx, ebx
mov ecx, edi
mov edx, edi
and ecx, 0xfffff
shr edx, 0x14
test edi, edi
js 0x1002ae70
mov esi, eax
and edx, 0x7ff
or esi, ecx
je 0x1002ae85
jmp 0x1002aea0
mov byte [ebp], 0x2d
mov ebx, 1
mov esi, eax
and edx, 0x7ff
or esi, ecx
jne 0x1002aea0
test edx, edx
jne 0x1002aea0
shr edi, 0x1f
mov byte [ebp + ebx + 2], 0x30
mov word [ebp + ebx], 0x2e30
add edi, 3
jmp 0x1002c2ca
mov edi, eax
mov ebp, ecx
mov dword [esp + 0x38], 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
mov dword [esp + 0x68], edi
lea edi, [edi*4]
setne al
cmp edx, 2
setb cl
or cl, al
test ebx, ebx
js 0x1002b355
imul edx, ebx, 0x13441
movzx ecx, cl
shr edx, 0x12
cmp ebx, 4
not ecx
adc edx, 0xffffffff
mov dword [esp + 0x6c], ecx
imul eax, edx, 0x12934f
mov esi, edx
mov dword [esp + 0x24], edx
shr eax, 0x13
sub esi, ebx
add esi, eax
mov eax, edx
mov edx, edi
shl eax, 4
mov dword [esp + 8], esi
mov esi, edi
movdqu xmm0, xmmword [eax + 0x10064cc8]
mov ebx, dword [eax + 0x10064cc8]
or esi, 2
add edx, ecx
mov ecx, ebp
adc ecx, 0xffffffff
mov dword [esp + 4], edx
mov dword [esp], ecx
mov eax, ebx
pshufd xmm1, xmm0, 0x55
mov dword [esp + 0x30], ebx
mul esi
movd eax, xmm1
pshufd xmm1, xmm0, 0xff
pshufd xmm0, xmm0, 0xee
mov dword [esp + 0x18], edx
mov dword [esp + 0x10], eax
mul esi
mov ecx, eax
mov eax, ebx
add ecx, dword [esp + 0x18]
adc edx, 0
mov dword [esp + 0xc], edx
mul ebp
mov ebx, dword [esp + 0xc]
add ecx, eax
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x64], edx
adc ebx, edx
setb cl
mul ebp
add ebx, eax
mov dword [esp + 0x60], eax
movzx eax, cl
mov dword [esp + 0x5c], edx
adc eax, edx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x20], eax
movd eax, xmm0
mov dword [esp + 0x18], eax
mul esi
mov dword [esp + 0x2c], eax
movd eax, xmm1
mov dword [esp + 0x28], edx
mov dword [esp + 0x1c], eax
mul esi
mov ecx, eax
mov eax, dword [esp + 0x18]
mov ebx, edx
add ecx, dword [esp + 0x28]
adc ebx, 0
mul ebp
add ecx, eax
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x54], edx
adc ebx, edx
setb byte [esp + 0x28]
mul ebp
mov dword [esp + 0x50], eax
add ebx, eax
movzx eax, byte [esp + 0x28]
mov dword [esp + 0x4c], edx
adc eax, edx
mov edx, dword [esp + 0x2c]
add edx, dword [esp + 0xc]
adc ecx, dword [esp + 0x20]
mov dword [esp + 0xb0], edx
adc ebx, 0
mov dword [esp + 0xb4], ecx
adc eax, 0
mov dword [esp + 0xb8], ebx
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 8]
add al, 0x7d
and al, 0x7f
xor al, 0x40
mov ch, al
shr al, 3
and ch, 7
movzx eax, al
mov byte [esp + 0x20], ch
mov dword [esp + 0xcc], 0
mov dword [esp + 0xc8], 0
mov dword [esp + 0xc4], 0
mov dword [esp + 0xc0], 0
mov cl, ch
not ch
mov ebx, dword [esp + eax + 0xb4]
mov dword [esp + 0x28], eax
mov byte [esp + 0x2c], ch
mov dword [esp + 8], ebx
mov edx, ebx
mov ebx, dword [esp + eax + 0xb8]
shr edx, cl
mov cl, ch
add ebx, ebx
shl ebx, cl
movzx ecx, byte [esp + 0x20]
or ebx, edx
mov dword [esp + 0xc], ebx
mov ebx, dword [esp + 0x18]
mov edx, dword [esp + eax + 0xb0]
mov eax, dword [esp + 8]
shrd edx, eax, cl
mov ecx, dword [esp + 4]
mov dword [esp + 8], edx
mov eax, ecx
mul ebx
mov dword [esp + 0x48], eax
mov eax, dword [esp]
mov dword [esp + 0x44], edx
mul ebx
mov ebx, eax
mov eax, ecx
mov ecx, dword [esp + 0x1c]
add ebx, dword [esp + 0x44]
adc edx, 0
mov dword [esp + 0x34], edx
mul ecx
add eax, ebx
mov ebx, dword [esp]
adc edx, dword [esp + 0x34]
mov dword [esp + 0x44], eax
mov eax, ebx
mov dword [esp + 0x34], edx
setb byte [esp + 0x40]
mul ecx
mov ecx, dword [esp + 0x30]
add eax, dword [esp + 0x34]
mov dword [esp + 0x34], eax
movzx eax, byte [esp + 0x40]
adc edx, eax
mov eax, dword [esp + 4]
mov dword [esp + 0x40], edx
mul ecx
mov eax, ebx
mov dword [esp + 0x3c], edx
mul ecx
mov ecx, dword [esp + 0x10]
mov ebx, eax
mov eax, dword [esp + 4]
add ebx, dword [esp + 0x3c]
adc edx, 0
mov dword [esp + 0x3c], edx
mul ecx
add eax, ebx
mov eax, dword [esp]
adc edx, dword [esp + 0x3c]
setb byte [esp + 4]
mov ebx, edx
mul ecx
movzx ecx, byte [esp + 4]
add eax, ebx
adc edx, ecx
add eax, dword [esp + 0x48]
adc edx, dword [esp + 0x44]
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], edx
mov eax, dword [esp + 0x34]
adc eax, 0
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x8c], 0
mov dword [esp + 0x88], 0
mov dword [esp + 0x84], 0
mov dword [esp + 0x80], 0
adc eax, 0
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x28]
mov ch, byte [esp + 0x20]
mov edx, dword [esp + eax + 0x74]
mov cl, ch
mov dword [esp], edx
shr edx, cl
mov cl, byte [esp + 0x2c]
mov ebx, dword [esp + eax + 0x78]
add ebx, ebx
shl ebx, cl
mov cl, ch
or ebx, edx
mov dword [esp + 4], ebx
mov edx, dword [esp + eax + 0x70]
mov eax, dword [esp]
shrd edx, eax, cl
mov eax, dword [esp + 0x30]
mov dword [esp], edx
mul edi
mov eax, dword [esp + 0x10]
mov ecx, edx
mul edi
mov ebx, edx
add eax, ecx
adc ebx, 0
add eax, dword [esp + 0x14]
adc ebx, dword [esp + 0x64]
setb al
add ebx, dword [esp + 0x60]
movzx eax, al
adc eax, dword [esp + 0x5c]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x18]
mul edi
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x1c]
mov ecx, edx
mul edi
add eax, ecx
adc edx, 0
add eax, dword [esp + 0x58]
adc edx, dword [esp + 0x54]
setb cl
add edx, dword [esp + 0x50]
movzx ecx, cl
adc ecx, dword [esp + 0x4c]
add dword [esp + 0x10], ebx
mov ebx, dword [esp + 0x10]
adc eax, dword [esp + 0x30]
mov dword [esp + 0xac], 0
mov dword [esp + 0xa8], 0
mov dword [esp + 0xa4], 0
mov dword [esp + 0xa0], 0
mov dword [esp + 0x90], ebx
adc edx, 0
mov dword [esp + 0x94], eax
adc ecx, 0
mov dword [esp + 0x98], edx
mov dword [esp + 0x9c], ecx
mov eax, dword [esp + 0x28]
mov ch, byte [esp + 0x20]
mov edx, dword [esp + eax + 0x94]
mov cl, ch
mov dword [esp + 0x10], edx
shr edx, cl
mov cl, byte [esp + 0x2c]
mov ebx, dword [esp + eax + 0x98]
add ebx, ebx
shl ebx, cl
mov cl, ch
or ebx, edx
mov edx, dword [esp + eax + 0x90]
mov eax, dword [esp + 0x10]
shrd edx, eax, cl
mov eax, dword [esp + 0x24]
mov dword [esp + 0x10], edx
cmp eax, 0x16
jae 0x1002b74b
mov ecx, edi
mov dword [esp + 0x14], ebx
mov ebx, 0xcccccccd
add ecx, ebp
adc ecx, 0
mov eax, ecx
mul ebx
shr edx, 2
lea eax, [edx + edx*4]
cmp eax, ecx
jne 0x1002b7aa
mov esi, 0xffffffff
nop word cs:[eax + eax]
mov eax, edi
mov ecx, 0xcccccccc
imul ebp, ebx
inc esi
imul edi, ecx
mul ebx
mov ecx, 0x33333333
add edi, edx
mov edx, 0x33333333
add ebp, edi
cmp ecx, eax
mov edi, eax
sbb edx, ebp
jae 0x1002b310
mov ecx, dword [esp + 0x24]
cmp esi, ecx
jb 0x1002b852
mov al, 1
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], eax
jmp 0x1002baca
imul edx, ebx, 0xfff4d105
xor eax, eax
mov dword [esp + 0x20], ecx
mov ecx, 0x10066228
shr edx, 0x14
cmp ebx, 0xffffffff
setne al
sub edx, eax
add ebx, edx
mov dword [esp + 0x64], edx
imul eax, ebx, 0x3ed6cb1
mov dword [esp + 0x24], ebx
shr eax, 0x13
sub edx, eax
mov eax, ebx
mov ebx, edi
shl eax, 4
or ebx, 2
mov dword [esp + 4], edx
sub ecx, eax
mov eax, dword [ecx]
mov esi, dword [ecx + 4]
mov dword [esp + 0x1c], eax
mul ebx
mov eax, esi
mov dword [esp + 0x18], esi
mov dword [esp], edx
mul ebx
mov esi, eax
mov eax, dword [esp + 0x1c]
add esi, dword [esp]
adc edx, 0
mov dword [esp], edx
mul ebp
add esi, eax
mov dword [esp + 0x60], eax
mov eax, dword [ecx + 0xc]
mov esi, dword [ecx + 8]
mov ecx, dword [esp]
mov dword [esp + 0x5c], edx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x18]
adc ecx, edx
mov dword [esp + 0x30], esi
setb byte [esp + 0xc]
mul ebp
add ecx, eax
mov dword [esp + 0x58], eax
movzx eax, byte [esp + 0xc]
mov dword [esp + 0x54], edx
mov dword [esp], ecx
mov ecx, esi
adc eax, edx
mov dword [esp + 0xc], eax
mov eax, esi
mul ebx
mov dword [esp + 8], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x2c], edx
mul ebx
mov esi, eax
mov ebx, edx
mov eax, ecx
add esi, dword [esp + 0x2c]
adc ebx, 0
mul ebp
add esi, eax
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x4c], edx
adc ebx, edx
setb cl
mul ebp
mov dword [esp + 0x48], eax
add ebx, eax
movzx eax, cl
mov ecx, dword [esp + 8]
mov dword [esp + 0x44], edx
adc eax, edx
add ecx, dword [esp]
adc esi, dword [esp + 0xc]
mov dword [esp + 0x110], ecx
adc ebx, 0
mov dword [esp + 0x114], esi
adc eax, 0
mov dword [esp + 0x118], ebx
mov dword [esp + 0x11c], eax
mov eax, dword [esp + 4]
add al, 0x7c
and al, 0x7f
xor al, 0x40
mov ecx, eax
shr al, 3
movzx ebx, al
and cl, 7
mov dword [esp + 0x14], ebx
mov dword [esp + 0x12c], 0
mov dword [esp + 0x128], 0
mov dword [esp + 0x124], 0
mov dword [esp + 0x120], 0
mov ch, cl
mov eax, ecx
mov edx, dword [esp + ebx + 0x114]
not ch
mov byte [esp + 0x28], cl
mov byte [esp + 0x2c], ch
mov dword [esp], edx
shr edx, cl
mov cl, ch
mov esi, dword [esp + ebx + 0x118]
add esi, esi
shl esi, cl
mov ecx, eax
mov eax, dword [esp]
or esi, edx
mov dword [esp + 0xc], esi
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + ebx + 0x110]
shrd edx, eax, cl
movzx ecx, byte [esp + 0x20]
mov eax, ebp
mov dword [esp + 8], edx
not ecx
add ecx, edi
adc eax, 0xffffffff
mov dword [esp], eax
mov eax, esi
mul ecx
mov eax, dword [esp + 0x18]
mov dword [esp + 4], edx
mul ecx
mov ebx, eax
mov eax, esi
mov esi, dword [esp]
add ebx, dword [esp + 4]
adc edx, 0
mov dword [esp + 4], edx
mul esi
add eax, ebx
mov eax, dword [esp + 0x18]
adc edx, dword [esp + 4]
mov ebx, edx
setb byte [esp + 0x34]
mul esi
mov esi, dword [esp + 0x30]
add eax, ebx
mov dword [esp + 4], eax
movzx eax, byte [esp + 0x34]
adc edx, eax
mov eax, esi
mov dword [esp + 0x34], edx
mul ecx
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x3c], edx
mul ecx
mov ebx, eax
mov eax, esi
add ebx, dword [esp + 0x3c]
adc edx, 0
mov dword [esp + 0x3c], edx
mul dword [esp]
mov ecx, eax
mov esi, edx
mov eax, dword [esp + 0x10]
add ecx, ebx
adc esi, dword [esp + 0x3c]
setb bl
mul dword [esp]
add eax, esi
movzx esi, bl
adc edx, esi
mov esi, dword [esp + 0x40]
add esi, dword [esp + 4]
adc ecx, dword [esp + 0x34]
mov dword [esp + 0xd0], esi
mov dword [esp + 0xec], 0
mov dword [esp + 0xe8], 0
mov dword [esp + 0xe4], 0
mov dword [esp + 0xe0], 0
adc eax, 0
mov dword [esp + 0xd4], ecx
adc edx, 0
mov dword [esp + 0xd8], eax
mov dword [esp + 0xdc], edx
mov ebx, dword [esp + 0x14]
mov ch, byte [esp + 0x28]
mov eax, dword [esp + ebx + 0xd4]
mov esi, dword [esp + ebx + 0xd8]
mov cl, ch
mov edx, eax
add esi, esi
shr edx, cl
mov cl, byte [esp + 0x2c]
shl esi, cl
mov cl, ch
or esi, edx
mov dword [esp + 4], esi
mov edx, dword [esp + ebx + 0xd0]
shrd edx, eax, cl
mov eax, dword [esp + 0x1c]
mov dword [esp], edx
mul edi
mov eax, dword [esp + 0x18]
mov ecx, edx
mul edi
mov esi, edx
add eax, ecx
adc esi, 0
add eax, dword [esp + 0x60]
adc esi, dword [esp + 0x5c]
setb al
add esi, dword [esp + 0x58]
movzx eax, al
adc eax, dword [esp + 0x54]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x30]
mul edi
mov ebx, eax
mov eax, dword [esp + 0x10]
mov ecx, edx
mul edi
add eax, ecx
adc edx, 0
add eax, dword [esp + 0x50]
adc edx, dword [esp + 0x4c]
setb cl
add edx, dword [esp + 0x48]
movzx ecx, cl
adc ecx, dword [esp + 0x44]
add ebx, esi
adc eax, dword [esp + 0x18]
mov dword [esp + 0xf0], ebx
mov dword [esp + 0x10c], 0
mov dword [esp + 0x108], 0
mov dword [esp + 0x104], 0
mov dword [esp + 0x100], 0
adc edx, 0
mov dword [esp + 0xf4], eax
adc ecx, 0
mov dword [esp + 0xf8], edx
mov dword [esp + 0xfc], ecx
mov esi, dword [esp + 0x14]
mov ch, byte [esp + 0x28]
mov eax, dword [esp + esi + 0xf4]
mov ebx, dword [esp + esi + 0xf8]
mov cl, ch
mov esi, dword [esp + esi + 0xf0]
mov edx, eax
add ebx, ebx
shr edx, cl
mov cl, byte [esp + 0x2c]
shl ebx, cl
mov cl, ch
shrd esi, eax, cl
mov ecx, dword [esp + 0x64]
or ebx, edx
mov dword [esp + 0x10], esi
cmp ecx, 2
jae 0x1002b751
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0x20]
mov edi, dword [esp + 8]
mov dword [esp + 0x14], ebx
mov ebx, dword [esp + 0xc]
mov esi, dword [esp + 4]
and eax, 1
sete cl
and dl, cl
sub edi, eax
mov al, 1
mov dword [esp + 0x1c], eax
mov eax, dword [esp]
mov dword [esp + 0x20], edx
sbb ebx, 0
jmp 0x1002badd
mov dword [esp + 0x24], eax
jmp 0x1002b7a1
cmp ecx, 0x3f
jae 0x1002b7a1
mov eax, 0xffffffff
mov edx, 0xffffffff
xor esi, esi
shl eax, cl
test cl, 0x20
cmovne edx, eax
cmovne eax, esi
not eax
not edx
and ebp, edx
and edi, eax
or edi, ebp
mov ebp, dword [esp + 4]
jne 0x1002b85e
mov al, 1
mov dword [esp + 0x14], ebx
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x20], 0
mov esi, ebp
mov dword [esp + 0x1c], eax
mov eax, dword [esp]
jmp 0x1002bad9
mov ebp, dword [esp + 4]
jmp 0x1002b85e
test byte [esp + 0x68], 1
je 0x1002b80f
mov edi, 0xffffffff
nop word cs:[eax + eax]
mov eax, esi
mov ecx, 0xcccccccc
imul ebp, ebx
inc edi
imul esi, ecx
mul ebx
mov ecx, 0x33333333
add esi, edx
mov edx, 0x33333333
add ebp, esi
cmp ecx, eax
mov esi, eax
sbb edx, ebp
jae 0x1002b7c0
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 8]
xor eax, eax
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 4]
mov esi, dword [esp]
cmp edi, edx
mov dword [esp + 0x24], edx
setae al
sub ecx, eax
mov eax, dword [esp + 0xc]
sbb eax, 0
jmp 0x1002b869
add edi, dword [esp + 0x6c]
mov esi, 0xffffffff
adc ebp, 0xffffffff
nop dword [eax + eax]
mov eax, edi
mov ecx, 0xcccccccc
imul ebp, ebx
inc esi
imul edi, ecx
mul ebx
mov ecx, 0x33333333
add edi, edx
mov edx, 0x33333333
add ebp, edi
cmp ecx, eax
mov edi, eax
sbb edx, ebp
jae 0x1002b820
mov ecx, dword [esp + 0x24]
cmp esi, ecx
jae 0x1002babc
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 4]
mov dword [esp + 0x24], ecx
mov esi, dword [esp]
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
push 0
push 0x64
mov dword [esp + 0x14], eax
push eax
mov dword [esp + 0x14], ecx
push ecx
call fcn.1005b630
mov edi, eax
mov dword [esp + 0x18], edx
push 0
push 0x64
mov dword [esp + 0xc], ebp
push ebp
mov dword [esp + 0xc], esi
push esi
call fcn.1005b630
mov dword [esp + 0x20], edi
cmp eax, edi
mov edi, dword [esp + 0x18]
mov ebp, eax
mov eax, edx
mov dword [esp + 0x1c], 0
sbb eax, edi
jae 0x1002b8ea
push 0
push 0x64
push ebx
mov esi, dword [esp + 0x1c]
push esi
mov ebx, edx
call fcn.1005b630
imul ecx, eax, 0xffffff9c
mov dword [esp], ebp
mov ebp, dword [esp + 0x20]
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], eax
mov dword [esp + 0x18], 2
add ecx, esi
mov esi, ebx
cmp ecx, 0x32
setae cl
mov dword [esp + 0x1c], ecx
jmp 0x1002b902
mov edi, dword [esp + 0xc]
mov ebp, dword [esp + 8]
mov esi, dword [esp + 4]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], 0
shrd ebp, edi, 1
shr edi, 1
mov edx, 0xcccccccd
mov ebx, 0xcccccccd
mov dword [esp + 4], 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 0x1002ba99
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
nop dword [eax + eax]
mov esi, ecx
mov dword [esp + 0x1c], edi
shr ecx, 1
mov dword [esp + 4], 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 + 0x18]
mul edi
imul ecx, ecx, 0xcccccccd
add esi, edx
mov dword [esp + 0x10], 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 + 4]
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 + 0x10]
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 0x1002b9a0
mov edx, dword [esp + 0x1c]
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 0x1002baa5
mov ebp, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x1c]
mov ecx, dword [esp]
mov eax, dword [esp + 4]
xor ecx, edx
xor eax, ebp
or eax, ecx
sete al
or al, bl
jmp 0x1002bec3
mov al, 1
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], eax
mov esi, dword [esp + 4]
mov eax, dword [esp]
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x24], ecx
mov edi, dword [esp + 8]
shrd edi, ebx, 1
shr ebx, 1
mov dword [esp], eax
mov edx, 0xcccccccd
mov ebp, eax
mov dword [esp + 4], esi
mov dword [esp + 0xc], 0
mov ecx, edi
add ecx, ebx
adc ecx, 0
mov eax, ecx
mul edx
shr edx, 2
lea eax, [edx + edx*4]
sub ecx, eax
sub edi, ecx
mov ecx, 0xcccccccd
mov eax, edi
sbb ebx, 0
mul ecx
mov ecx, esi
mov dword [esp + 8], eax
imul eax, edi, 0xcccccccc
imul edi, ebx, 0xcccccccd
mov ebx, esi
shld ecx, ebp, 0x1f
add eax, edx
shr ebx, 1
mov esi, ecx
mov edx, 0xcccccccd
add edi, eax
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, dword [esp + 8]
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 0x1002bcf3
mov ecx, dword [esp]
mov ebx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
mov dword [esp + 0x2c], ebp
mov ebp, esi
mov dword [esp + 0x18], 0
mov dword [esp + 0x30], eax
mov dword [esp + 0x28], ecx
xor ecx, ecx
nop word cs:[eax + eax]
nop dword [eax + eax]
mov esi, ebx
mov dword [esp + 0x14], ecx
shr ebx, 1
mov dword [esp + 0x10], 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 + 8], 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 + 0x10]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x30]
mov dword [esp], eax
add eax, eax
lea eax, [eax + eax*4]
cmp eax, dword [esp + 0x28]
mov eax, dword [esp + 0x2c]
mov dword [esp + 4], eax
sete al
and cl, al
cmp byte [esp + 0x14], 0
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x1c]
sete al
shrd ebp, edi, 1
shr edi, 1
inc dword [esp + 0x18]
mov esi, ebp
and cl, al
add esi, edi
mov dword [esp + 0x1c], 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 + 4]
mov dword [esp + 0x10], 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 + 0x10]
mov eax, esi
sbb ecx, 0
imul esi, esi, 0xcccccccc
mul edx
add esi, edx
imul edx, ecx, 0xcccccccd
mov dword [esp + 0x30], eax
mov ecx, dword [esp + 0xc]
add edx, esi
cmp eax, ebp
mov esi, dword [esp]
mov eax, edx
mov dword [esp + 0x2c], edx
sbb eax, edi
mov eax, dword [esp + 8]
mov dword [esp + 0x28], esi
mov edx, eax
jb 0x1002bbb0
jmp 0x1002bd06
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
mov esi, dword [esp]
mov dword [esp + 0x18], 0
mov edx, dword [esp + 0x20]
mov dword [esp], esi
mov dword [esp + 0x14], ebx
xor dl, 1
mov dword [esp + 0x20], edx
jne 0x1002be56
mov ebx, dword [esp + 4]
mov ebp, dword [esp]
mov dword [esp + 8], 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 0x1002be5a
mov dword [esp], eax
imul edi, ebx, 0xcccccccd
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 8]
imul esi, esi, 0xcccccccc
add edx, esi
add edi, edx
mov esi, ebx
shr ebx, 1
mov dword [esp + 8], eax
mov ecx, 0xcccccccd
mov dword [esp + 4], 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 + 0x10], eax
mov edx, 0xcccccccd
add ebx, ecx
mov ecx, eax
add ecx, eax
lea eax, [ecx + ecx*4]
mov ecx, dword [esp + 0x1c]
neg eax
add al, byte [esp + 8]
cmp byte [esp + 0xc], 0
mov dword [esp + 8], eax
sete al
shr ebp, 1
inc dword [esp + 0x18]
and cl, al
mov eax, dword [esp]
mov dword [esp + 0x1c], 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 + 0x10]
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 + 8]
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 0x1002bd80
jmp 0x1002be69
mov esi, eax
jmp 0x1002be5e
mov esi, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp]
mov dword [esp + 8], ecx
test byte [esp + 0x68], 1
mov ecx, dword [esp + 0x20]
mov edx, esi
mov esi, dword [esp + 4]
sete al
xor cl, 1
test al, cl
jne 0x1002be9e
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 0x1002be9e
mov edx, ebp
mov ebp, esi
jmp 0x1002bec3
mov ecx, dword [esp + 8]
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 + 0x1c], 0
cmove eax, ecx
cmp al, 5
setae al
mov ecx, dword [esp + 0x24]
mov esi, dword [esp + 0x18]
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 0x1002c07c
mov eax, 0xa4c67fff
mov ecx, 0x38d7e
mov edi, 0x10
cmp eax, edx
sbb ecx, ebp
jb 0x1002c07c
mov eax, 0x107a3fff
mov ecx, 0x5af3
mov edi, 0xf
cmp eax, edx
sbb ecx, ebp
jb 0x1002c07c
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 0x1002c07c
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 0x1002c07c
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 0x1002c07c
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 0x1002c07c
mov ecx, 0x3b9ac9ff
xor eax, eax
mov ebx, 0
mov edi, 0xa
cmp ecx, edx
sbb ebx, ebp
jb 0x1002c07c
mov ecx, 0x5f5e0ff
mov edi, 9
cmp ecx, edx
sbb eax, ebp
jb 0x1002c07c
mov ecx, 0x98967f
xor eax, eax
mov ebx, 0
mov edi, 8
cmp ecx, edx
sbb ebx, ebp
jb 0x1002c07c
mov ecx, 0xf423f
mov edi, 7
cmp ecx, edx
sbb eax, ebp
jb 0x1002c07c
mov ecx, 0x1869f
xor eax, eax
mov ebx, 0
mov edi, 6
cmp ecx, edx
sbb ebx, ebp
jb 0x1002c07c
mov ecx, 0x270f
mov edi, 5
cmp ecx, edx
sbb eax, ebp
jb 0x1002c07c
mov ecx, 0x3e7
xor eax, eax
mov ebx, 0
mov edi, 4
cmp ecx, edx
sbb ebx, ebp
jb 0x1002c07c
mov ecx, 0x63
mov edi, 3
cmp ecx, edx
sbb eax, ebp
jb 0x1002c07c
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 + 0x14], ebp
js 0x1002c0d8
cmp ebx, 0x11
jge 0x1002c0d8
mov dword [esp + 0x18], esi
mov esi, dword [esp + 0x14c]
mov ebp, dword [esp + 0x38]
mov ecx, edx
mov edx, dword [esp + 0x14]
lea eax, [esi + ebp]
add eax, edi
push eax
call fcn.1002acd0
add esp, 4
cmp edi, ebx
jge 0x1002c0c6
add edi, esi
add edi, ebp
push dword [esp + 0x18]
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 0x1002c2ca
lea esi, [ebx - 1]
cmp esi, 0x10
jae 0x1002c124
mov ebp, dword [esp + 0x38]
mov ecx, dword [esp + 0x14c]
lea eax, [ebp + edi]
mov esi, ecx
lea edi, [ebp + edi + 1]
lea eax, [ecx + eax + 1]
mov ecx, edx
mov edx, dword [esp + 0x14]
push eax
call fcn.1002acd0
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 0x1002c2ca
lea eax, [ebx + 4]
cmp eax, 5
jae 0x1002c18c
mov esi, dword [esp + 0x14c]
mov eax, dword [esp + 0x38]
mov ebp, 2
sub ebp, ebx
test ebx, ebx
mov word [esi + eax], 0x2e30
jns 0x1002c172
mov eax, dword [esp + 0x38]
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 + 0x44]
mov edx, ebx
add esp, 0xc
add edi, eax
mov ecx, edx
mov edx, dword [esp + 0x14]
add edi, ebp
add esi, edi
push esi
call fcn.1002acd0
add esp, 4
jmp 0x1002c2ca
cmp edi, 1
jne 0x1002c1b3
mov eax, dword [esp + 0x14c]
mov ebp, dword [esp + 0x38]
add dl, 0x30
test esi, esi
lea edi, [eax + ebp + 2]
mov byte [eax + ebp], dl
mov byte [eax + ebp + 1], 0x65
js 0x1002c1fd
mov ecx, esi
jmp 0x1002c208
mov eax, dword [esp + 0x38]
mov ecx, edx
mov edx, dword [esp + 0x14]
lea ebp, [edi + eax]
mov eax, dword [esp + 0x14c]
lea eax, [eax + ebp + 1]
push eax
call fcn.1002acd0
add esp, 4
mov ecx, dword [esp + 0x14c]
mov edx, dword [esp + 0x38]
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 0x1002c252
mov ecx, esi
jmp 0x1002c25e
mov ecx, 1
mov byte [edi], 0x2d
inc edi
sub ecx, ebx
or ebp, 2
cmp ecx, 0x63
jle 0x1002c23a
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__C:Users_runneradmin.cargogitcheckouts_rust_hooking_utils_f7ee34eac6a81147_a36a365_srclib.rs]
mov word [edi + 1], ax
jmp 0x1002c2b8
cmp ecx, 9
jle 0x1002c2af
movzx eax, word [ecx + ecx + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899__C:Users_runneradmin.cargogitcheckouts_rust_hooking_utils_f7ee34eac6a81147_a36a365_srclib.rs]
shr esi, 0x1f
or esi, 2
mov word [edi], ax
jmp 0x1002c2b8
mov ecx, 1
mov byte [ebp], 0x2d
inc ebp
sub ecx, ebx
mov eax, dword [esp + 0x38]
cmp ecx, 0x63
lea edi, [edi + eax + 2]
jle 0x1002c296
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__C:Users_runneradmin.cargogitcheckouts_rust_hooking_utils_f7ee34eac6a81147_a36a365_srclib.rs]
mov word [ebp + 1], ax
jmp 0x1002c2c6
cmp ecx, 9
jle 0x1002c2bc
movzx eax, word [ecx + ecx + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899__C:Users_runneradmin.cargogitcheckouts_rust_hooking_utils_f7ee34eac6a81147_a36a365_srclib.rs]
shr esi, 0x1f
or esi, 2
mov word [ebp], ax
jmp 0x1002c2c6
shr esi, 0x1f
add cl, 0x30
inc esi
mov byte [edi], cl
add esi, ebp
jmp 0x1002c2c8
shr esi, 0x1f
add cl, 0x30
inc esi
mov byte [ebp], cl
add esi, edi
mov edi, esi
mov eax, edi
add esp, 0x130
pop esi
pop edi
pop ebx
pop ebp
ret