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

Disassembly:
push 0xffffffffffffffff
push 0x74c538
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x44
push ebx
push ebp
push esi
push edi
mov eax, dword [0x93cc28]
xor edi, edi
cmp eax, edi
mov dword [esp + 0x5c], edi
mov dword [esp + 0x10], eax
jne 0x56b287
push 1
lea ecx, [esp + 0x68]
mov dword [esp + 0x60], 0xffffffff
call fcn.00404760
jmp 0x56b867
mov ebp, dword [esp + 0x74]
mov ebx, dword [sym.imp.kernel32.dll_lstrcmpiA]
mov esi, 0x93920c
mov eax, dword [esi]
test eax, eax
jne 0x56b2a1
mov eax, 0x765608
push eax
push ebp
call ebx
test eax, eax
je 0x56b2e6
add esi, 0x10
inc edi
cmp esi, 0x93928c
jl 0x56b296
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x5c], 0xffffffff
test ecx, ecx
je 0x56b867
mov al, byte [ecx - 1]
test al, al
je 0x56b85d
cmp al, 0xff
je 0x56b85d
dec al
mov byte [ecx - 1], al
jmp 0x56b867
cmp edi, 7
ja case.default.0x56b2ef
jmp dword [edi*4 + 0x56b87c]
push ebp
call dword [sym.imp.kernel32.dll_lstrlenA]
mov ecx, dword [esp + 0x6c]
add eax, 2
cmp ecx, eax
jb 0x56b809
mov ecx, dword [0x76560c]
lea edx, [esp + 0x24]
push ecx
push eax
push edx
lea ecx, [esp + 0x70]
call fcn.0040aa70
mov eax, dword [0x93cc28]
mov byte [esp + 0x5c], 1
mov ecx, dword [eax + 0x1fc]
test ecx, ecx
je 0x56b349
mov eax, dword [esp + 0x28]
test eax, eax
jne 0x56b343
mov eax, 0x765608
push eax
call fcn.00545240
push 1
lea ecx, [esp + 0x28]
mov byte [esp + 0x60], 0
call fcn.00404760
jmp 0x56b809
mov ecx, dword [esp + 0x7c]
push ecx
call fcn.00728197
mov edx, dword [0x93cc28]
add esp, 4
mov ecx, dword [edx + 0x1fc]
test ecx, ecx
je 0x56b809
push eax
mov eax, dword [esp + 0x7c]
push eax
call fcn.005457c0
jmp 0x56b809
mov ecx, dword [esp + 0x78]
push ecx
call fcn.00728197
mov edx, dword [0x93cc28]
add esp, 4
mov byte [esp + 0x78], al
mov ecx, dword [edx + 0x1fc]
test ecx, ecx
je 0x56b809
mov eax, dword [esp + 0x78]
push eax
call fcn.00545680
jmp 0x56b809
mov ecx, dword [esp + 0x78]
push ecx
call fcn.00728197
mov edx, dword [0x93cc28]
add esp, 4
mov byte [esp + 0x78], al
mov ecx, dword [edx + 0x1fc]
test ecx, ecx
je 0x56b809
mov eax, dword [esp + 0x78]
push eax
call fcn.00545550
jmp 0x56b809
mov ecx, dword [esp + 0x78]
push ecx
call fcn.00728197
mov edx, dword [0x93cc28]
add esp, 4
mov byte [esp + 0x78], al
mov ecx, dword [edx + 0x1fc]
test ecx, ecx
je 0x56b809
mov eax, dword [esp + 0x78]
push eax
push 2
call fcn.005453a0
jmp 0x56b809
mov ecx, dword [esp + 0x78]
push ecx
call fcn.00728197
mov edx, dword [0x93cc28]
add esp, 4
mov byte [esp + 0x78], al
mov ecx, dword [edx + 0x1fc]
test ecx, ecx
je 0x56b809
mov eax, dword [esp + 0x78]
push eax
push 3
call fcn.005453a0
jmp 0x56b809
mov ecx, dword [esp + 0x78]
push ecx
call fcn.00728197
mov edx, dword [0x93cc28]
add esp, 4
mov byte [esp + 0x78], al
mov ecx, dword [edx + 0x1fc]
test ecx, ecx
je 0x56b809
mov eax, dword [esp + 0x78]
push eax
push 1
call fcn.005453a0
jmp 0x56b809
mov eax, dword [0x93c98c]
mov ecx, dword [eax + 0x4a4]
test ecx, ecx
je 0x56b589
mov cl, byte [esp + 0x78]
push 0
mov byte [esp + 0x28], cl
lea ecx, [esp + 0x28]
call fcn.00404760
lea edx, [esp + 0x24]
mov byte [esp + 0x5c], 2
push edx
push 0x2cf8
call fcn.006a8c20
mov al, byte [esp + 0x80]
add esp, 8
lea ecx, [esp + 0x34]
mov byte [esp + 0x34], al
push 0
call fcn.00404760
mov edi, 0x7c4d88
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebp, ecx
lea ecx, [esp + 0x38]
push ebp
call fcn.00401450
test al, al
mov ebx, 3
je 0x56b534
mov edi, dword [esp + 0x38]
mov ecx, ebp
mov edx, ecx
mov esi, 0x7c4d88
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push ebp
and ecx, ebx
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x38]
call fcn.00404970
push 0
push 0
lea eax, [esp + 0x3c]
push 0
lea ecx, [esp + 0x30]
push eax
lea edx, [esp + 0x54]
push ecx
push edx
mov byte [esp + 0x74], bl
call fcn.006f9ae0
add esp, 0x18
push 1
lea ecx, [esp + 0x48]
mov byte [esp + 0x60], bl
call fcn.00404760
push 1
lea ecx, [esp + 0x38]
mov byte [esp + 0x60], 2
call fcn.00404760
push 1
lea ecx, [esp + 0x28]
mov byte [esp + 0x60], 0
call fcn.00404760
jmp 0x56b809
cmp dword [eax + 0x4e4], 1
je 0x56b59c
mov eax, dword [eax + 0x4f0]
mov dword [esp + 0x74], eax
mov cl, byte [esp + 0x78]
push 0
mov byte [esp + 0x18], cl
lea ecx, [esp + 0x18]
call fcn.00404760
mov esi, dword [esp + 0x78]
or ecx, 0xffffffff
mov edi, esi
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push 1
mov ebp, ecx
lea ecx, [esp + 0x18]
push ebp
call fcn.00401450
test al, al
je 0x56b5ef
mov edi, dword [esp + 0x18]
mov ecx, ebp
mov edx, ecx
push ebp
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x18]
call fcn.00404970
mov eax, dword [esp + 0x1c]
xor edi, edi
mov bl, 5
cmp eax, edi
mov byte [esp + 0x5c], bl
jne 0x56b6e3
mov eax, dword [0x93c98c]
mov esi, dword [0x93c988]
lea edx, [esp + 0x78]
mov ecx, dword [eax + 0x454]
lea eax, [esp + 0x74]
mov dword [esp + 0x78], ecx
push edx
push eax
lea ecx, [esi + 0x38]
call fcn.0047a320
mov esi, dword [esi + 0x3c]
mov eax, dword [esp + 0x74]
cmp eax, esi
je 0x56b6db
mov esi, dword [eax + 0x10]
cmp esi, edi
je 0x56b6db
mov ecx, dword [0x76560c]
lea edx, [esi + 0x478]
push ecx
push edi
push edx
lea ecx, [esp + 0x20]
call fcn.00404560
mov eax, dword [0x93c98c]
mov edx, dword [esi + 0x490]
mov ecx, dword [eax + 0x490]
cmp ecx, edx
je 0x56b6db
cmp dword [eax + 0x4a4], edi
je 0x56b6db
mov dl, byte [esp + 0x78]
push edi
lea ecx, [esp + 0x28]
mov byte [esp + 0x28], dl
call fcn.00404760
lea eax, [esp + 0x24]
mov byte [esp + 0x5c], 6
push eax
push 0x2cee
call fcn.006a8c20
add esp, 8
lea ecx, [esp + 0x24]
push 0xffffff00
push ecx
mov ecx, dword [0x93cc28]
call fcn.00663960
push 1
lea ecx, [esp + 0x28]
mov byte [esp + 0x60], bl
call fcn.00404760
push 1
lea ecx, [esp + 0x18]
mov byte [esp + 0x60], 0
call fcn.00404760
jmp 0x56b809
mov eax, dword [esp + 0x1c]
cmp eax, edi
je 0x56b75f
cmp eax, 0x14
ja 0x56b75f
mov esi, dword [esp + 0x10]
cmp dword [esi + 0x204], edi
je 0x56b72f
mov dl, byte [esp + 0x14]
sub esp, 0x10
mov ecx, esp
mov dword [esp + 0x88], esp
mov byte [ecx], dl
mov dword [ecx + 4], edi
mov dword [ecx + 8], edi
mov dword [ecx + 0xc], edi
mov eax, dword [0x76560c]
lea edx, [esp + 0x24]
push eax
push edi
push edx
call fcn.00404560
mov ecx, dword [esi + 0x204]
mov byte [esp + 0x6c], bl
call fcn.006fe5e0
mov eax, dword [esp + 0x18]
mov byte [esp + 0x5c], 0
cmp eax, edi
je 0x56b809
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x56b7f5
cmp al, 0xff
je 0x56b7f5
dec al
mov byte [ecx], al
jmp 0x56b809
mov al, byte [esp + 0x78]
mov dword [esp + 0x28], edi
mov byte [esp + 0x24], al
mov dword [esp + 0x2c], edi
mov dword [esp + 0x30], edi
lea ecx, [esp + 0x24]
mov byte [esp + 0x5c], 7
push ecx
push 0x2cef
call fcn.006a8c20
mov ecx, dword [0x93cc28]
add esp, 8
lea edx, [esp + 0x24]
push 0xffffff00
push edx
call fcn.00663960
mov eax, dword [esp + 0x28]
mov byte [esp + 0x5c], bl
cmp eax, edi
je 0x56b7c8
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x56b7bf
cmp al, 0xff
je 0x56b7bf
dec al
mov byte [ecx], al
jmp 0x56b7c8
push ecx
call fcn.00726ea6
add esp, 4
mov eax, dword [esp + 0x18]
mov dword [esp + 0x28], edi
mov dword [esp + 0x2c], edi
mov dword [esp + 0x30], edi
cmp eax, edi
mov byte [esp + 0x5c], 0
je 0x56b809
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x56b7f5
cmp al, 0xff
je 0x56b7f5
dec al
mov byte [ecx], al
jmp 0x56b809
push ecx
call fcn.00726ea6
add esp, 4
jmp 0x56b809
cmp edi, 0xffffffff
je 0x56b2b5
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x5c], 0xffffffff
test ecx, ecx
je 0x56b848
mov al, byte [ecx - 1]
test al, al
je 0x56b83e
cmp al, 0xff
je 0x56b83e
dec al
mov byte [ecx - 1], al
mov al, 1
mov ecx, dword [esp + 0x54]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x50
ret
dec ecx
push ecx
call fcn.00726ea6
add esp, 4
mov al, 1
mov ecx, dword [esp + 0x54]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x50
ret
dec ecx
push ecx
call fcn.00726ea6
add esp, 4
mov ecx, dword [esp + 0x54]
pop edi
pop esi
pop ebp
xor al, al
mov dword fs:[0], ecx
pop ebx
add esp, 0x50
ret