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

Disassembly:
mov edx, edi
shr edx, 5
mov ecx, edi
mov eax, dword [ebp + edx*4]
mov edx, dword [ebp + edx*4 + 4]
shld eax, edx, cl
shr eax, 0x19
xor ebx, ebx
mov bl, byte [eax + 0x80192c]
mov edx, 0xf
and edx, ebx
xor eax, eax
shr ebx, 4
add edi, edx
cmp ebx, 0
je 0x5f1f92
mov edx, edi
mov ecx, edi
shr edx, 5
mov eax, dword [ebp + edx*4]
mov edx, dword [ebp + edx*4 + 4]
shld eax, edx, cl
mov ecx, 0x20
sub ecx, ebx
add edi, ebx
shr eax, cl
mov ecx, ebx
dec ebx
bt eax, ebx
jb 0x5f1f92
mov edx, 1
shl edx, cl
dec edx
sub eax, edx
mov ebx, dword [esi + 0x100]
add eax, ebx
mov dword [esi + 0x100], eax
mov ecx, 0x40
lea edx, [esp + 4]
call 0x5f221c
mov edx, edi
shr edx, 5
mov ecx, edi
mov eax, dword [ebp + edx*4]
mov edx, dword [ebp + edx*4 + 4]
shld eax, edx, cl
shr eax, 0x19
xor ebx, ebx
mov bl, byte [eax + 0x80192c]
mov edx, 0xf
and edx, ebx
xor eax, eax
shr ebx, 4
add edi, edx
cmp ebx, 0
je 0x5f200d
mov edx, edi
mov ecx, edi
shr edx, 5
mov eax, dword [ebp + edx*4]
mov edx, dword [ebp + edx*4 + 4]
shld eax, edx, cl
mov ecx, 0x20
sub ecx, ebx
add edi, ebx
shr eax, cl
mov ecx, ebx
dec ebx
bt eax, ebx
jb 0x5f200d
mov edx, 1
shl edx, cl
dec edx
sub eax, edx
mov ebx, dword [esi + 0x100]
add eax, ebx
mov dword [esi + 0x100], eax
mov ecx, 0x40
lea edx, [esp + 0x24]
call 0x5f221c
mov edx, edi
shr edx, 5
mov ecx, edi
mov eax, dword [ebp + edx*4]
mov edx, dword [ebp + edx*4 + 4]
shld eax, edx, cl
shr eax, 0x19
xor ebx, ebx
mov bl, byte [eax + 0x80192c]
mov edx, 0xf
and edx, ebx
xor eax, eax
shr ebx, 4
add edi, edx
cmp ebx, 0
je 0x5f2088
mov edx, edi
mov ecx, edi
shr edx, 5
mov eax, dword [ebp + edx*4]
mov edx, dword [ebp + edx*4 + 4]
shld eax, edx, cl
mov ecx, 0x20
sub ecx, ebx
add edi, ebx
shr eax, cl
mov ecx, ebx
dec ebx
bt eax, ebx
jb 0x5f2088
mov edx, 1
shl edx, cl
dec edx
sub eax, edx
mov ebx, dword [esi + 0x100]
add eax, ebx
mov dword [esi + 0x100], eax
mov ecx, 0x40
lea edx, [esp + 0x204]
call 0x5f221c
mov edx, edi
shr edx, 5
mov ecx, edi
mov eax, dword [ebp + edx*4]
mov edx, dword [ebp + edx*4 + 4]
shld eax, edx, cl
shr eax, 0x19
xor ebx, ebx
mov bl, byte [eax + 0x80192c]
mov edx, 0xf
and edx, ebx
xor eax, eax
shr ebx, 4
add edi, edx
cmp ebx, 0
je 0x5f2106
mov edx, edi
mov ecx, edi
shr edx, 5
mov eax, dword [ebp + edx*4]
mov edx, dword [ebp + edx*4 + 4]
shld eax, edx, cl
mov ecx, 0x20
sub ecx, ebx
add edi, ebx
shr eax, cl
mov ecx, ebx
dec ebx
bt eax, ebx
jb 0x5f2106
mov edx, 1
shl edx, cl
dec edx
sub eax, edx
mov ebx, dword [esi + 0x100]
add eax, ebx
mov dword [esi + 0x100], eax
mov ecx, 0x40
lea edx, [esp + 0x224]
call 0x5f221c
mov edx, edi
shr edx, 5
mov ecx, edi
mov eax, dword [ebp + edx*4]
mov edx, dword [ebp + edx*4 + 4]
shld eax, edx, cl
shr eax, 0x18
xor ebx, ebx
mov bl, byte [eax + 0x8019ac]
mov edx, 0xf
and edx, ebx
xor eax, eax
shr ebx, 4
add edi, edx
cmp ebx, 0
je 0x5f2184
mov edx, edi
mov ecx, edi
shr edx, 5
mov eax, dword [ebp + edx*4]
mov edx, dword [ebp + edx*4 + 4]
shld eax, edx, cl
mov ecx, 0x20
sub ecx, ebx
add edi, ebx
shr eax, cl
mov ecx, ebx
dec ebx
bt eax, ebx
jb 0x5f2184
mov edx, 1
shl edx, cl
dec edx
sub eax, edx
mov ebx, dword [esi + 0x104]
add eax, ebx
mov dword [esi + 0x104], eax
mov ecx, 0x20
lea edx, [esp + 0x404]
call 0x5f221c
mov edx, edi
shr edx, 5
mov ecx, edi
mov eax, dword [ebp + edx*4]
mov edx, dword [ebp + edx*4 + 4]
shld eax, edx, cl
shr eax, 0x18
xor ebx, ebx
mov bl, byte [eax + 0x8019ac]
mov edx, 0xf
and edx, ebx
xor eax, eax
shr ebx, 4
add edi, edx
cmp ebx, 0
je 0x5f2202
mov edx, edi
mov ecx, edi
shr edx, 5
mov eax, dword [ebp + edx*4]
mov edx, dword [ebp + edx*4 + 4]
shld eax, edx, cl
mov ecx, 0x20
sub ecx, ebx
add edi, ebx
shr eax, cl
mov ecx, ebx
dec ebx
bt eax, ebx
jb 0x5f2202
mov edx, 1
shl edx, cl
dec edx
sub eax, edx
mov ebx, dword [esi + 0x108]
add eax, ebx
mov dword [esi + 0x108], eax
mov ecx, 0x20
lea edx, [esp + 0x504]
push ecx
push edx
sub esp, 0x300
xor ebx, ebx
mov edx, dword [esi]
lea ecx, [esp]
imul edx
mov dword [ecx + 4], ebx
mov dword [ecx + 8], ebx
mov dword [ecx + 0xc], ebx
mov dword [ecx + 0x10], ebx
mov dword [ecx + 0x14], ebx
mov dword [ecx + 0x18], ebx
mov dword [ecx + 0x1c], ebx
mov dword [ecx + 0x20], ebx
mov dword [ecx + 0x24], ebx
mov dword [ecx + 0x28], ebx
mov dword [ecx + 0x2c], ebx
mov dword [ecx + 0x30], ebx
mov dword [ecx + 0x34], ebx
mov dword [ecx + 0x38], ebx
mov dword [ecx + 0x3c], ebx
mov dword [ecx + 0x40], ebx
mov dword [ecx + 0x44], ebx
mov dword [ecx + 0x48], ebx
mov dword [ecx + 0x4c], ebx
mov dword [ecx + 0x50], ebx
mov dword [ecx + 0x54], ebx
mov dword [ecx + 0x58], ebx
mov dword [ecx + 0x5c], ebx
mov dword [ecx + 0x60], ebx
mov dword [ecx + 0x64], ebx
mov dword [ecx + 0x68], ebx
mov dword [ecx + 0x6c], ebx
mov dword [ecx + 0x70], ebx
mov dword [ecx + 0x74], ebx
mov dword [ecx + 0x78], ebx
mov dword [ecx + 0x7c], ebx
mov dword [ecx + 0x80], ebx
mov dword [ecx + 0x84], ebx
mov dword [ecx + 0x88], ebx
mov dword [ecx + 0x8c], ebx
mov dword [ecx + 0x90], ebx
mov dword [ecx + 0x94], ebx
mov dword [ecx + 0x98], ebx
mov dword [ecx + 0x9c], ebx
mov dword [ecx + 0xa0], ebx
mov dword [ecx + 0xa4], ebx
mov dword [ecx + 0xa8], ebx
mov dword [ecx + 0xac], ebx
mov dword [ecx + 0xb0], ebx
mov dword [ecx + 0xb4], ebx
mov dword [ecx + 0xb8], ebx
mov dword [ecx + 0xbc], ebx
mov dword [ecx + 0xc0], ebx
mov dword [ecx + 0xc4], ebx
mov dword [ecx + 0xc8], ebx
mov dword [ecx + 0xcc], ebx
mov dword [ecx + 0xd0], ebx
mov dword [ecx + 0xd4], ebx
mov dword [ecx + 0xd8], ebx
mov dword [ecx + 0xdc], ebx
mov dword [ecx + 0xe0], ebx
mov dword [ecx + 0xe4], ebx
mov dword [ecx + 0xe8], ebx
mov dword [ecx + 0xec], ebx
mov dword [ecx + 0xf0], ebx
mov dword [ecx + 0xf4], ebx
mov dword [ecx + 0xf8], ebx
mov dword [ecx + 0xfc], ebx
mov dword [ecx], eax
mov bl, 0x3f
mov edx, edi
shr edx, 5
mov ecx, edi
mov eax, dword [ebp + edx*4]
mov edx, dword [ebp + edx*4 + 4]
shld eax, edx, cl
shr eax, 0xf
mov ecx, eax
cmp eax, 0x8000
jl 0x5f23ce
shr eax, 0xd
mov edx, dword [eax*4 + 0x80169c]
mov eax, edx
shr edx, 0x10
add edi, edx
cmp ah, 0x41
je 0x5f24da
ja 0x5f2461
neg edx
sub bl, ah
add edx, 0x10
and eax, 0xff
inc edi
bt ecx, edx
jae 0x5f23a0
neg eax
mov ecx, dword [ebx*4 + 0x8015b0]
mov edx, dword [esi + ecx*4]
imul eax, edx
mov dword [esp + ecx*4], eax
mov edx, edi
shr edx, 5
mov ecx, edi
mov eax, dword [ebp + edx*4]
mov edx, dword [ebp + edx*4 + 4]
shld eax, edx, cl
shr eax, 0xf
mov ecx, eax
cmp eax, 0x8000
jge 0x5f236c
cmp eax, 0x800
jl 0x5f23e1
shr eax, 9
mov edx, dword [eax*4 + 0x8016cc]
jmp 0x5f2376
cmp eax, 0x400
jl 0x5f23f4
shr eax, 7
mov edx, dword [eax*4 + 0x8017ac]
jmp 0x5f2376
cmp eax, 0x200
jl 0x5f240a
shr eax, 5
mov edx, dword [eax*4 + 0x8017ac]
jmp 0x5f2376
cmp eax, 0x100
jl 0x5f2420
shr eax, 4
mov edx, dword [eax*4 + 0x8017ec]
jmp 0x5f2376
cmp eax, 0x80
jl 0x5f2436
shr eax, 3
mov edx, dword [eax*4 + 0x80182c]
jmp 0x5f2376
cmp eax, 0x40
jl 0x5f244a
shr eax, 2
mov edx, dword [eax*4 + 0x80186c]
jmp 0x5f2376
cmp eax, 0x20
jl 0x5f24da
shr eax, 1
mov edx, dword [eax*4 + 0x8018ac]
jmp 0x5f2376
mov edx, edi
mov ecx, edi
shr edx, 5
mov eax, dword [ebp + edx*4]
mov edx, dword [ebp + edx*4 + 4]
shld eax, edx, cl
shr eax, 0x12
add edi, 0xe
sub bl, ah
dec bl
and eax, 0xff
jne 0x5f24a1
mov edx, edi
mov ecx, edi
shr edx, 5
mov eax, dword [ebp + edx*4]
mov edx, dword [ebp + edx*4 + 4]
shld eax, edx, cl
shr eax, 0x18
add edi, 8
jmp 0x5f23a0
cmp eax, 0x80
jne 0x5f24ca
mov edx, edi
mov ecx, edi
shr edx, 5
mov eax, dword [ebp + edx*4]
mov edx, dword [ebp + edx*4 + 4]
shld eax, edx, cl
shr eax, 0x18
add edi, 8
sub eax, 0x100
jmp 0x5f23a0
jle 0x5f23a0
sub eax, 0x100
jmp 0x5f23a0
cmp bl, 0x3f
je 0x5f262d
push esi
push ebp
push edi
lea esi, [esp + 0xc]
lea edi, [esp + 0x10c]
call fcn.005f3e9f
lea esi, [esp + 0x2c]
lea edi, [esp + 0x110]
call fcn.005f3e9f
lea esi, [esp + 0x4c]
lea edi, [esp + 0x114]
call fcn.005f3e9f
lea esi, [esp + 0x6c]
lea edi, [esp + 0x118]
call fcn.005f3e9f
lea esi, [esp + 0x8c]
lea edi, [esp + 0x11c]
call fcn.005f3e9f
lea esi, [esp + 0xac]
lea edi, [esp + 0x120]
call fcn.005f3e9f
lea esi, [esp + 0xcc]
lea edi, [esp + 0x124]
call fcn.005f3e9f
lea esi, [esp + 0xec]
lea edi, [esp + 0x128]
call fcn.005f3e9f
mov edi, dword [esp + 0x30c]
lea esi, [esp + 0x10c]
call fcn.005f40c8
mov eax, dword [esp + 0x310]
add edi, eax
lea esi, [esp + 0x130]
call fcn.005f40c8
mov eax, dword [esp + 0x310]
add edi, eax
lea esi, [esp + 0x154]
call fcn.005f40c8
mov eax, dword [esp + 0x310]
add edi, eax
lea esi, [esp + 0x178]
call fcn.005f40c8
mov eax, dword [esp + 0x310]
add edi, eax
lea esi, [esp + 0x19c]
call fcn.005f40c8
mov eax, dword [esp + 0x310]
add edi, eax
lea esi, [esp + 0x1c0]
call fcn.005f40c8
mov eax, dword [esp + 0x310]
add edi, eax
lea esi, [esp + 0x1e4]
call fcn.005f40c8
mov eax, dword [esp + 0x310]
add edi, eax
lea esi, [esp + 0x208]
call fcn.005f40c8
mov eax, dword [esp + 0x310]
add edi, eax
pop edi
pop ebp
pop esi
add esp, 0x300
pop edx
pop ecx
ret
mov eax, dword [esp]
mov edx, dword [esp + 0x300]
sar eax, 0x11
mov ebx, dword [esp + 0x304]
mov dword [edx], eax
mov dword [edx + 4], eax
mov dword [edx + 8], eax
mov dword [edx + 0xc], eax
mov dword [edx + 0x10], eax
mov dword [edx + 0x14], eax
mov dword [edx + 0x18], eax
mov dword [edx + 0x1c], eax
add edx, ebx
mov dword [edx], eax
mov dword [edx + 4], eax
mov dword [edx + 8], eax
mov dword [edx + 0xc], eax
mov dword [edx + 0x10], eax
mov dword [edx + 0x14], eax
mov dword [edx + 0x18], eax
mov dword [edx + 0x1c], eax
add edx, ebx
mov dword [edx], eax
mov dword [edx + 4], eax
mov dword [edx + 8], eax
mov dword [edx + 0xc], eax
mov dword [edx + 0x10], eax
mov dword [edx + 0x14], eax
mov dword [edx + 0x18], eax
mov dword [edx + 0x1c], eax
add edx, ebx
mov dword [edx], eax
mov dword [edx + 4], eax
mov dword [edx + 8], eax
mov dword [edx + 0xc], eax
mov dword [edx + 0x10], eax
mov dword [edx + 0x14], eax
mov dword [edx + 0x18], eax
mov dword [edx + 0x1c], eax
add edx, ebx
mov dword [edx], eax
mov dword [edx + 4], eax
mov dword [edx + 8], eax
mov dword [edx + 0xc], eax
mov dword [edx + 0x10], eax
mov dword [edx + 0x14], eax
mov dword [edx + 0x18], eax
mov dword [edx + 0x1c], eax
add edx, ebx
mov dword [edx], eax
mov dword [edx + 4], eax
mov dword [edx + 8], eax
mov dword [edx + 0xc], eax
mov dword [edx + 0x10], eax
mov dword [edx + 0x14], eax
mov dword [edx + 0x18], eax
mov dword [edx + 0x1c], eax
add edx, ebx
mov dword [edx], eax
mov dword [edx + 4], eax
mov dword [edx + 8], eax
mov dword [edx + 0xc], eax
mov dword [edx + 0x10], eax
mov dword [edx + 0x14], eax
mov dword [edx + 0x18], eax
mov dword [edx + 0x1c], eax
add edx, ebx
mov dword [edx], eax
mov dword [edx + 4], eax
mov dword [edx + 8], eax
mov dword [edx + 0xc], eax
mov dword [edx + 0x10], eax
mov dword [edx + 0x14], eax
mov dword [edx + 0x18], eax
mov dword [edx + 0x1c], eax
add edx, ebx
add esp, 0x300
pop edx
pop ecx
ret