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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x34
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
mov edi, dword [ebp + 0xc]
mov dword [ebp - 4], ecx
cmp esi, dword [edi]
jb 0x5664b0
mov eax, esi
sub eax, dword [edi + 4]
cmp eax, dword [edi + 0x10]
je 0x566d45
push dword [edi + 0x48]
mov ecx, edi
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.005b5d30
cmp byte [ebp - 0x18], 0
mov esi, dword [ebp - 0x1c]
jne 0x566d71
movzx ebx, byte [esi]
lea eax, [esi + 1]
mov dword [ebp - 8], eax
cmp ebx, 0x80
jae 0x5664c5
mov esi, eax
jmp 0x5664f3
movzx ecx, byte [eax]
add ebx, 0xffffff80
mov eax, ecx
shl eax, 7
add ebx, eax
cmp ecx, 0x80
jae 0x5664df
add esi, 2
jmp 0x5664f3
push ebx
lea eax, [ebp - 0x24]
push esi
push eax
call fcn.005b6410
mov ebx, dword [ebp - 0x20]
add esp, 0xc
mov esi, dword [ebp - 0x24]
mov eax, ebx
mov dword [ebp - 8], esi
shr eax, 3
dec eax
cmp eax, 0x15
ja case.default.0x566505
jmp dword [eax*4 + 0x566d7c]
cmp bl, 0xa
jne case.default.0x566505
mov ebx, dword [ebp - 4]
dec esi
nop dword [eax]
mov eax, dword [ebx + 0x14]
inc esi
test eax, eax
je 0x56653b
mov ecx, dword [ebx + 0xc]
cmp ecx, dword [eax]
jge 0x56653b
mov edx, dword [eax + ecx*4 + 4]
lea eax, [ecx + 1]
mov dword [ebx + 0xc], eax
jmp 0x566551
push dword [ebx + 8]
call fcn.0056e130
add esp, 4
lea ecx, [ebx + 8]
push eax
call fcn.005b4d80
mov edx, eax
push esi
push edx
mov ecx, edi
call fcn.005b61e0
mov esi, eax
test esi, esi
je 0x566d60
cmp esi, dword [edi]
jae 0x566486
cmp byte [esi], 0xa
je 0x566520
jmp 0x566482
cmp bl, 0x10
jne case.default.0x566505
lea eax, [ebp - 8]
push eax
call fcn.00574240
mov ebx, dword [ebp - 4]
add esp, 4
mov esi, dword [ebp - 8]
mov dword [ebx + 0xe0], eax
mov dword [ebx + 0xe4], edx
test esi, esi
jne 0x566482
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
cmp bl, 0x1a
jne case.default.0x566505
mov ebx, dword [ebp - 4]
dec esi
nop dword [eax]
mov eax, dword [ebx + 0x24]
inc esi
test eax, eax
je 0x5665db
mov ecx, dword [ebx + 0x1c]
cmp ecx, dword [eax]
jge 0x5665db
mov edx, dword [eax + ecx*4 + 4]
lea eax, [ecx + 1]
mov dword [ebx + 0x1c], eax
jmp 0x5665f1
push dword [ebx + 0x18]
call fcn.0056d920
add esp, 4
lea ecx, [ebx + 0x18]
push eax
call fcn.005b4d80
mov edx, eax
push esi
push edx
mov ecx, edi
call fcn.005b61e0
mov esi, eax
test esi, esi
je 0x566d60
cmp esi, dword [edi]
jae 0x566486
cmp byte [esi], 0x1a
je 0x5665c0
jmp 0x566482
cmp bl, 0x22
jne case.default.0x566505
mov ebx, dword [ebp - 4]
dec esi
mov eax, dword [ebx + 0x34]
inc esi
test eax, eax
je 0x56663e
mov ecx, dword [ebx + 0x2c]
cmp ecx, dword [eax]
jge 0x56663e
mov edx, dword [eax + ecx*4 + 4]
lea eax, [ecx + 1]
mov dword [ebx + 0x2c], eax
jmp 0x566654
push dword [ebx + 0x28]
call fcn.0056eac0
add esp, 4
lea ecx, [ebx + 0x28]
push eax
call fcn.005b4d80
mov edx, eax
push esi
push edx
mov ecx, edi
call fcn.005b61e0
mov esi, eax
test esi, esi
je 0x566d60
cmp esi, dword [edi]
jae 0x566486
cmp byte [esi], 0x22
je 0x566623
jmp 0x566482
cmp bl, 0x2a
jne case.default.0x566505
mov ebx, dword [ebp - 4]
dec esi
mov eax, dword [ebx + 0x44]
inc esi
test eax, eax
je 0x5666a1
mov ecx, dword [ebx + 0x3c]
cmp ecx, dword [eax]
jge 0x5666a1
mov edx, dword [eax + ecx*4 + 4]
lea eax, [ecx + 1]
mov dword [ebx + 0x3c], eax
jmp 0x5666b7
push dword [ebx + 0x38]
call fcn.0056f110
add esp, 4
lea ecx, [ebx + 0x38]
push eax
call fcn.005b4d80
mov edx, eax
push esi
push edx
mov ecx, edi
call fcn.005b61e0
mov esi, eax
test esi, esi
je 0x566d60
cmp esi, dword [edi]
jae 0x566486
cmp byte [esi], 0x2a
je 0x566686
jmp 0x566482
cmp bl, 0x32
jne case.default.0x566505
mov ebx, dword [ebp - 4]
dec esi
nop dword [eax]
mov eax, dword [ebx + 0x54]
inc esi
test eax, eax
je 0x56670b
mov ecx, dword [ebx + 0x4c]
cmp ecx, dword [eax]
jge 0x56670b
mov edx, dword [eax + ecx*4 + 4]
lea eax, [ecx + 1]
mov dword [ebx + 0x4c], eax
jmp 0x566721
push dword [ebx + 0x48]
call fcn.0056e010
add esp, 4
lea ecx, [ebx + 0x48]
push eax
call fcn.005b4d80
mov edx, eax
push esi
push edx
mov ecx, edi
call fcn.005b61e0
mov esi, eax
test esi, esi
je 0x566d60
cmp esi, dword [edi]
jae 0x566486
cmp byte [esi], 0x32
je 0x5666f0
jmp 0x566482
cmp bl, 0x3a
jne case.default.0x566505
mov ebx, dword [ebp - 4]
dec esi
mov eax, dword [ebx + 0x64]
inc esi
test eax, eax
je 0x56676e
mov ecx, dword [ebx + 0x5c]
cmp ecx, dword [eax]
jge 0x56676e
mov edx, dword [eax + ecx*4 + 4]
lea eax, [ecx + 1]
mov dword [ebx + 0x5c], eax
jmp 0x566784
push dword [ebx + 0x58]
call fcn.0056d8a0
add esp, 4
lea ecx, [ebx + 0x58]
push eax
call fcn.005b4d80
mov edx, eax
push esi
push edx
mov ecx, edi
call fcn.005b61e0
mov esi, eax
test esi, esi
je 0x566d60
cmp esi, dword [edi]
jae 0x566486
cmp byte [esi], 0x3a
je 0x566753
jmp 0x566482
cmp bl, 0x42
jne case.default.0x566505
mov ebx, dword [ebp - 4]
cmp dword [ebx + 0xd0], 0
jne 0x5667db
mov eax, dword [ebx + 4]
and eax, 0xfffffffc
test byte [ebx + 4], 1
je 0x5667cc
mov eax, dword [eax]
push eax
call fcn.0056e6a0
add esp, 4
mov dword [ebx + 0xd0], eax
push esi
push dword [ebx + 0xd0]
mov ecx, edi
call fcn.005b61e0
mov esi, eax
test esi, esi
jne 0x566482
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
cmp bl, 0x4a
jne case.default.0x566505
mov ebx, dword [ebp - 4]
cmp dword [ebx + 0xd4], 0
jne 0x566830
mov eax, dword [ebx + 4]
and eax, 0xfffffffc
test byte [ebx + 4], 1
je 0x566821
mov eax, dword [eax]
push eax
call fcn.0056e330
add esp, 4
mov dword [ebx + 0xd4], eax
push esi
push dword [ebx + 0xd4]
jmp 0x5667e2
cmp bl, 0x52
jne case.default.0x566505
mov ebx, dword [ebp - 4]
cmp dword [ebx + 0xd8], 0
jne 0x56686b
mov eax, dword [ebx + 4]
and eax, 0xfffffffc
test byte [ebx + 4], 1
je 0x56685c
mov eax, dword [eax]
push eax
call fcn.0056eda0
add esp, 4
mov dword [ebx + 0xd8], eax
push esi
push dword [ebx + 0xd8]
jmp 0x5667e2
cmp bl, 0x58
jne case.default.0x566505
movzx edx, byte [esi]
test dl, dl
js 0x566896
mov eax, dword [ebp - 4]
inc esi
mov dword [eax + 0xe8], edx
jmp 0x5667eb
movzx ecx, byte [esi + 1]
add edx, 0xffffff80
mov eax, ecx
shl eax, 7
add edx, eax
test cl, cl
js 0x5668b9
mov eax, dword [ebp - 4]
add esi, 2
mov dword [eax + 0xe8], edx
jmp 0x5667eb
push edx
lea eax, [ebp - 0x2c]
push esi
push eax
call fcn.005b64f0
mov eax, dword [ebp - 4]
add esp, 0xc
mov edx, dword [ebp - 0x28]
mov esi, dword [ebp - 0x2c]
mov dword [eax + 0xe8], edx
jmp 0x5667eb
cmp bl, 0x62
jne case.default.0x566505
mov ebx, dword [ebp - 4]
dec esi
mov eax, dword [ebx + 0x74]
inc esi
test eax, eax
je 0x566903
mov ecx, dword [ebx + 0x6c]
cmp ecx, dword [eax]
jge 0x566903
mov edx, dword [eax + ecx*4 + 4]
lea eax, [ecx + 1]
mov dword [ebx + 0x6c], eax
jmp 0x566919
push dword [ebx + 0x68]
call fcn.0056e540
add esp, 4
lea ecx, [ebx + 0x68]
push eax
call fcn.005b4d80
mov edx, eax
push esi
push edx
mov ecx, edi
call fcn.005b61e0
mov esi, eax
test esi, esi
je 0x566d60
cmp esi, dword [edi]
jae 0x566486
cmp byte [esi], 0x62
je 0x5668e8
jmp 0x566482
cmp bl, 0x6a
jne case.default.0x566505
mov ebx, dword [ebp - 4]
dec esi
nop dword [eax + eax]
mov eax, dword [ebx + 0x84]
inc esi
test eax, eax
je 0x56696e
mov ecx, dword [ebx + 0x7c]
cmp ecx, dword [eax]
jge 0x56696e
mov edx, dword [eax + ecx*4 + 4]
lea eax, [ecx + 1]
mov dword [ebx + 0x7c], eax
jmp 0x566984
push dword [ebx + 0x78]
call fcn.0056ece0
add esp, 4
lea ecx, [ebx + 0x78]
push eax
call fcn.005b4d80
mov edx, eax
push esi
push edx
mov ecx, edi
call fcn.005b61e0
mov esi, eax
test esi, esi
je 0x566d60
cmp esi, dword [edi]
jae 0x566486
cmp byte [esi], 0x6a
je 0x566950
jmp 0x566482
cmp bl, 0x72
jne case.default.0x566505
mov ebx, dword [ebp - 4]
dec esi
mov eax, dword [ebx + 0x94]
inc esi
test eax, eax
je 0x5669da
mov ecx, dword [ebx + 0x8c]
cmp ecx, dword [eax]
jge 0x5669da
mov edx, dword [eax + ecx*4 + 4]
lea eax, [ecx + 1]
mov dword [ebx + 0x8c], eax
jmp 0x5669f6
push dword [ebx + 0x88]
call fcn.0056ea20
add esp, 4
lea ecx, [ebx + 0x88]
push eax
call fcn.005b4d80
mov edx, eax
push esi
push edx
mov ecx, edi
call fcn.005b61e0
mov esi, eax
test esi, esi
je 0x566d60
cmp esi, dword [edi]
jae 0x566486
cmp byte [esi], 0x72
je 0x5669b6
jmp 0x566482
cmp bl, 0x78
jne case.default.0x566505
lea eax, [ebp - 8]
push eax
call fcn.00574240
mov esi, dword [ebp - 8]
add esp, 4
test esi, esi
je 0x566d60
mov ecx, dword [ebp - 4]
mov dword [ecx + 0xec], eax
jmp 0x566482
cmp bl, 0x82
jne case.default.0x566505
mov ebx, dword [ebp - 4]
mov eax, dword [ebx + 4]
and eax, 0xfffffffc
test byte [ebx + 4], 1
je 0x566a63
mov eax, dword [eax]
push eax
lea ecx, [ebx + 0xc8]
call fcn.005b4b00
push edi
push esi
push eax
call fcn.005b5ee0
add esp, 0xc
jmp 0x5667e9
cmp bl, 0x8a
jne case.default.0x566505
mov ecx, dword [ebp - 4]
mov eax, dword [ecx + 4]
and eax, 0xfffffffc
test byte [ecx + 4], 1
je 0x566a99
mov eax, dword [eax]
push eax
add ecx, 0xcc
call fcn.005b4b00
push edi
mov ebx, eax
push esi
push ebx
call fcn.005b5ee0
mov esi, eax
add esp, 0xc
test esi, esi
je 0x566d60
push 0
sub esp, 8
mov eax, ebx
cmp dword [ebx + 0x14], 0x10
mov ecx, esp
jb 0x566acd
mov eax, dword [ebx]
mov dword [ecx + 4], 0
mov dword [ecx], eax
mov eax, dword [ebx + 0x10]
mov dword [ecx + 4], eax
call fcn.005b6600
add esp, 0xc
test al, al
jne 0x566482
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
cmp bl, 0x90
jne case.default.0x566505
lea eax, [ebp - 8]
push eax
call fcn.00574240
add esp, 4
or eax, edx
je 0x566b23
mov ecx, dword [ebp - 4]
mov al, 1
mov esi, dword [ebp - 8]
mov byte [ecx + 0xf0], al
jmp 0x5667eb
mov ecx, dword [ebp - 4]
xor al, al
mov esi, dword [ebp - 8]
mov byte [ecx + 0xf0], al
jmp 0x5667eb
cmp bl, 0x9a
jne case.default.0x566505
mov ebx, dword [ebp - 4]
add esi, 0xfffffffe
mov eax, dword [ebx + 0xa4]
add esi, 2
test eax, eax
je 0x566b6b
mov ecx, dword [ebx + 0x9c]
cmp ecx, dword [eax]
jge 0x566b6b
mov edx, dword [eax + ecx*4 + 4]
lea eax, [ecx + 1]
mov dword [ebx + 0x9c], eax
jmp 0x566b87
push dword [ebx + 0x98]
call fcn.0056eed0
add esp, 4
lea ecx, [ebx + 0x98]
push eax
call fcn.005b4d80
mov edx, eax
push esi
push edx
mov ecx, edi
call fcn.005b61e0
mov esi, eax
test esi, esi
je 0x566d60
cmp esi, dword [edi]
jae 0x566486
mov ax, word [esi]
lea ecx, [ebp - 0xc]
mov word [ebp - 0xc], 0x19a
cmp ax, word [ecx]
je 0x566b45
jmp 0x566482
cmp bl, 0xa2
jne case.default.0x566505
mov ebx, dword [ebp - 4]
add esi, 0xfffffffe
nop word [eax + eax]
mov eax, dword [ebx + 0xb4]
add esi, 2
test eax, eax
je 0x566bf6
mov ecx, dword [ebx + 0xac]
cmp ecx, dword [eax]
jge 0x566bf6
mov edx, dword [eax + ecx*4 + 4]
lea eax, [ecx + 1]
mov dword [ebx + 0xac], eax
jmp 0x566c12
push dword [ebx + 0xa8]
call fcn.0056da00
add esp, 4
lea ecx, [ebx + 0xa8]
push eax
call fcn.005b4d80
mov edx, eax
push esi
push edx
mov ecx, edi
call fcn.005b61e0
mov esi, eax
test esi, esi
je 0x566d60
cmp esi, dword [edi]
jae 0x566486
mov ax, word [esi]
lea ecx, [ebp - 0x10]
mov word [ebp - 0x10], 0x1a2
cmp ax, word [ecx]
je 0x566bd0
jmp 0x566482
cmp bl, 0xa8
jne case.default.0x566505
lea eax, [ebp - 8]
push eax
call fcn.00574240
add esp, 4
or eax, edx
je 0x566c6f
mov ecx, dword [ebp - 4]
mov al, 1
mov esi, dword [ebp - 8]
mov byte [ecx + 0xf1], al
jmp 0x5667eb
mov ecx, dword [ebp - 4]
xor al, al
mov esi, dword [ebp - 8]
mov byte [ecx + 0xf1], al
jmp 0x5667eb
cmp bl, 0xb2
jne case.default.0x566505
mov ebx, dword [ebp - 4]
add esi, 0xfffffffe
nop dword [eax]
mov eax, dword [ebx + 0xc4]
add esi, 2
test eax, eax
je 0x566cb6
mov ecx, dword [ebx + 0xbc]
cmp ecx, dword [eax]
jge 0x566cb6
mov edx, dword [eax + ecx*4 + 4]
lea eax, [ecx + 1]
mov dword [ebx + 0xbc], eax
jmp 0x566cd2
push dword [ebx + 0xb8]
call fcn.0056de30
add esp, 4
lea ecx, [ebx + 0xb8]
push eax
call fcn.005b4d80
mov edx, eax
push esi
push edx
mov ecx, edi
call fcn.005b61e0
mov esi, eax
test esi, esi
je 0x566d60
cmp esi, dword [edi]
jae 0x566486
mov ax, word [esi]
lea ecx, [ebp - 0x14]
mov word [ebp - 0x14], 0x1b2
cmp ax, word [ecx]
je 0x566c90
jmp 0x566482
test ebx, ebx
je 0x566d5c
mov eax, ebx
and al, 7
cmp al, 4
je 0x566d5c
mov ecx, dword [ebp - 4]
add ecx, 4
test byte [ecx], 1
je 0x566d2f
mov eax, dword [ecx]
push edi
and eax, 0xfffffffc
add eax, 4
push esi
push eax
push ebx
call fcn.005b64c0
add esp, 0x10
jmp 0x5667e9
call fcn.0056fe80
push edi
push esi
push eax
push ebx
call fcn.005b64c0
add esp, 0x10
jmp 0x5667e9
test eax, eax
jle 0x566d71
xor eax, eax
cmp dword [edi + 8], eax
cmove esi, eax
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
test esi, esi
jne 0x566d6b
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
lea ecx, [ebx - 1]
mov dword [edi + 0x3c], ecx
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8