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

Disassembly:
sub esp, 0x48
mov eax, dword [esp + 0x4c]
xorps xmm0, xmm0
push ebx
push ebp
movlpd qword [esp + 0x3c], xmm0
mov ecx, dword [esp + 0x40]
push esi
movlpd qword [esp + 0x38], xmm0
mov ebx, dword [esp + 0x38]
movlpd qword [esp + 0x48], xmm0
mov ebp, dword [esp + 0x4c]
mov edx, dword [esp + 0x48]
push edi
mov edi, dword [esp + 0x40]
mov dword [esp + 0x14], 0
mov esi, dword [esp + 0x14]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x2c], 8
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x18], 0
mov byte [esp + 0x13], 0
mov byte [esp + 0x12], 0
mov dword [esp + 0x54], 8
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x38], edi
mov dword [esp + 0x3c], ebx
jmp 0x4f9394
mov edx, dword [esp + 0x20]
movzx ecx, byte [eax]
inc eax
mov dword [esp + 0x44], ecx
mov dword [esp + 0x5c], eax
test cl, cl
js 0x4f9452
and ecx, 7
add esi, ecx
mov ecx, esi
mov dword [esp + 0x14], esi
cmp ecx, dword [esp + 0x64]
ja case.0x4f9503.255
cmp ecx, dword [esp + 0x60]
jbe 0x4f93cf
mov byte [esp + 0x13], 0
mov byte [esp + 0x12], 0
jmp 0x4f9394
mov ecx, dword [esp + 0x44]
mov esi, 1
shr ecx, 3
and ecx, 7
shl esi, cl
test byte [esp + 0x44], 0x40
je 0x4f9424
or dword [esp + 0x30], esi
cmp byte [esp + 0x13], 0
mov ebp, dword [esp + 0x2c]
cmovne ebp, ecx
mov byte [esp + 0x13], 0
or esi, dword [esp + 0x34]
cmp byte [esp + 0x12], 0
mov dword [esp + 0x2c], ebp
cmove esi, dword [esp + 0x34]
mov ebp, dword [esp + 0x1c]
mov dword [esp + 0x34], esi
mov esi, dword [esp + 0x14]
mov byte [esp + 0x12], 0
jmp 0x4f9394
not esi
mov byte [esp + 0x13], 0
and dword [esp + 0x30], esi
cmp ecx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x2c]
cmove ecx, dword [esp + 0x54]
and dword [esp + 0x34], esi
mov esi, dword [esp + 0x14]
mov dword [esp + 0x2c], ecx
mov byte [esp + 0x12], 0
jmp 0x4f9394
mov esi, ecx
shr esi, 3
and esi, 7
cmp esi, 6
jae 0x4f9481
and ecx, 7
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x64]
cmp dword [esp + 0x14], ecx
ja case.0x4f9503.255
mov dword [esp + 0x4c], 0x40
jmp 0x4f9579
jne 0x4f94ed
mov esi, ecx
and esi, 7
mov dword [esp + 0x5c], esi
test cl, 0x40
je 0x4f94a8
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x5c]
lea esi, [esi + ecx*8]
add esi, 8
mov dword [esp + 0x14], esi
jmp 0x4f96c1
mov ecx, dword [esp + 0x14]
add ecx, esi
mov dword [esp + 0x14], ecx
cmp ecx, dword [esp + 0x64]
ja case.0x4f9503.255
mov esi, dword [esp + 0x18]
xor ebx, ebx
mov ecx, esi
xor edi, edi
bts ebx, ecx
cmp ecx, 0x20
cmovae edi, ebx
xor ebx, edi
cmp ecx, 0x40
mov dword [esp + 0x3c], ebx
cmovae edi, ebx
inc esi
mov dword [esp + 0x18], esi
mov esi, dword [esp + 0x14]
mov dword [esp + 0x38], edi
jmp 0x4f9394
add ecx, 0xffffff48
cmp ecx, 0x47
ja case.0x4f9503.185
movzx ecx, byte [ecx + 0x4f97fc]
jmp dword [ecx*4 + 0x4f97dc]
mov cl, byte [eax]
inc eax
movzx esi, cl
test cl, cl
jns 0x4f9529
and esi, 0x7f
mov dl, byte [eax]
inc eax
movzx ecx, dl
and ecx, 0x7f
shl esi, 7
add esi, ecx
test dl, dl
js 0x4f9517
add dword [esp + 0x14], esi
jmp case.0x4f9503.185
mov byte [esp + 0x13], 1
jmp case.0x4f9503.185
mov byte [esp + 0x12], 1
jmp case.0x4f9503.185
mov cl, byte [eax]
inc eax
mov dword [esp + 0x5c], eax
movzx esi, cl
test cl, cl
jns 0x4f9571
and esi, 0x7f
mov dl, byte [eax]
inc eax
movzx ecx, dl
and ecx, 0x7f
shl esi, 7
add esi, ecx
test dl, dl
js 0x4f9557
mov edx, dword [esp + 0x20]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x4c], 4
mov ecx, dword [esp + 0x44]
test dword [esp + 0x4c], ecx
je 0x4f95d7
test esi, esi
je case.0x4f9503.185
sub dword [esp + 0x18], esi
mov eax, dword [esp + 0x20]
mov edx, ebx
mov ecx, edi
and edx, eax
and ecx, ebp
dec esi
or edx, ecx
je 0x4f95b4
mov edx, ebx
mov ecx, edi
not edx
not ecx
and dword [esp + 0x24], edx
and eax, edx
and ebp, ecx
and dword [esp + 0x28], ecx
shrd ebx, edi, 1
shr edi, 1
test esi, esi
jne 0x4f9593
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x38], edi
jmp case.0x4f9503.185
cmp esi, 0x40
jae 0x4f961b
xor ebx, ebx
lea ecx, [esi + 1]
xor edi, edi
mov dword [esp + 0x18], ecx
bts ebx, esi
cmp esi, 0x20
cmovae edi, ebx
xor ebx, edi
cmp esi, 0x40
mov dword [esp + 0x3c], ebx
cmovae edi, ebx
or edx, ebx
or ebp, edi
mov dword [esp + 0x38], edi
cmp byte [esp + 0x12], 0
mov dword [esp + 0x20], edx
mov dword [esp + 0x1c], ebp
je 0x4f961b
or dword [esp + 0x24], ebx
or dword [esp + 0x28], edi
mov byte [esp + 0x13], 0
mov byte [esp + 0x12], 0
jmp case.0x4f9503.185
mov cl, byte [eax]
inc eax
movzx ebp, cl
test cl, cl
jns 0x4f9649
and ebp, 0x7f
mov dl, byte [eax]
inc eax
movzx ecx, dl
and ecx, 0x7f
shl ebp, 7
add ebp, ecx
test dl, dl
js 0x4f9637
mov ecx, dword [esp + 0x18]
xor edx, edx
xor esi, esi
mov dword [esp + 0x5c], eax
bts edx, ecx
cmp ecx, 0x20
cmovae esi, edx
xor edx, esi
cmp ecx, 0x40
mov dword [esp + 0x4c], edx
cmovae esi, edx
test ebp, ebp
je 0x4f96b9
mov edi, dword [esp + 0x20]
mov ebx, edx
mov eax, dword [esp + 0x28]
mov edx, ebx
mov ecx, esi
and ecx, dword [esp + 0x1c]
and edx, edi
or edx, ecx
je 0x4f969b
mov edx, ebx
mov ecx, esi
not edx
not ecx
and dword [esp + 0x1c], ecx
and edi, edx
and dword [esp + 0x24], edx
and eax, ecx
dec ebp
shrd ebx, esi, 1
shr esi, 1
test ebp, ebp
jne 0x4f9678
mov ebx, dword [esp + 0x3c]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x20], edi
mov edi, dword [esp + 0x38]
mov ebp, dword [esp + 0x1c]
mov esi, dword [esp + 0x14]
cmp esi, dword [esp + 0x64]
jbe 0x4f9390
mov ebx, dword [esp + 0x30]
mov ecx, ebx
and ecx, 1
mov esi, dword [esp + 0x68]
mov edx, ecx
or edx, 2
test bl, 2
pop edi
cmove edx, ecx
mov dword [esi + 0x7c], ebp
mov ecx, edx
mov dword [esi + 0x68], 0
or ecx, 4
test bl, 4
cmove ecx, edx
mov edx, ecx
or edx, 8
test bl, 8
cmove edx, ecx
mov ecx, edx
or ecx, 0x20
test bl, 0x20
cmove ecx, edx
mov edx, ecx
or edx, 0x40
test bl, 0x40
cmove edx, ecx
mov eax, edx
or eax, 0x80
test bl, 0x80
mov ebx, dword [esp + 0x30]
mov ecx, ebx
cmove eax, edx
and ecx, 1
mov edx, ecx
mov dword [esi + 0x60], eax
or edx, 2
mov eax, dword [esp + 0x1c]
test bl, 2
mov dword [esi + 0x78], eax
cmove edx, ecx
mov ecx, edx
or ecx, 4
test bl, 4
cmove ecx, edx
mov edx, ecx
or edx, 8
test bl, 8
cmove edx, ecx
mov ecx, edx
or ecx, 0x20
test bl, 0x20
cmove ecx, edx
mov edx, ecx
or edx, 0x40
test bl, 0x40
cmove edx, ecx
mov ecx, dword [esp + 0x24]
mov eax, edx
mov dword [esi + 0x84], ecx
or eax, 0x80
test bl, 0x80
cmove eax, edx
mov dword [esi + 0x64], eax
mov eax, dword [esp + 0x20]
mov dword [esi + 0x80], eax
mov eax, dword [esp + 0x28]
mov dword [esi + 0x5c], eax
mov eax, dword [esp + 0x14]
pop esi
pop ebp
shl eax, 2
pop ebx
add esp, 0x48
ret 0x10
mov cl, byte [eax]
inc eax
movzx esi, cl
test cl, cl
jns 0x4f97d2
and esi, 0x7f
nop dword [eax]
mov dl, byte [eax]
inc eax
movzx ecx, dl
and ecx, 0x7f
shl esi, 7
add esi, ecx
test dl, dl
js 0x4f97c0
add dword [esp + 0x18], esi
jmp case.0x4f9503.185