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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x4c
mov ebx, dword [esp + 0x60]
mov eax, dword [esp + 0x68]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x6c]
mov esi, dword [ebx + 8]
mov edi, dword [esp + 0x64]
mov dword [esp + 0x28], eax
mov ebp, dword [esp + 0x70]
test esi, esi
jne 0x56dda7
mov eax, dword [ebx]
mov eax, dword [eax + 4]
mov dword [esp + 4], 0x2000
mov dword [esp], ebx
mov dword [esp + 0x30], eax
call fcn.0056fcc0
mov dword [esp + 0x34], ebp
test eax, eax
je 0x56dcd3
lea edx, [ebp + 7]
mov eax, edx
sar eax, 0x1f
and eax, 7
add eax, edx
sar eax, 3
mov dword [esp + 0x34], eax
mov ecx, dword [ebx]
test byte [ecx + 0x12], 0x10
je 0x56dd20
cmp dword [esp + 0x30], 1
je 0x56e0b3
mov eax, dword [esp + 0x28]
mov dword [esp + 0xc], ebp
mov dword [esp + 8], eax
mov dword [esp + 4], edi
mov dword [esp], ebx
call dword [ecx + 0x18]
test eax, eax
js 0x56dea1
mov edi, dword [esp + 0x2c]
mov esi, 1
mov dword [edi], eax
add esp, 0x4c
mov eax, esi
pop ebx
pop esi
pop edi
pop ebp
ret
test ebp, ebp
jle 0x56deb7
test byte [ebx + 0x5d], 1
jne 0x56e020
cmp dword [esp + 0x30], 0x20
ja 0x56e1e7
mov edx, dword [ebx + 0x64]
test edx, edx
je 0x56def2
mov ecx, dword [esp + 0x28]
cmp edi, ecx
je 0x56dd76
mov eax, edi
sub eax, ecx
mov ecx, dword [esp + 0x30]
mov edx, ecx
neg edx
cmp eax, edx
seta dl
cmp ecx, eax
seta al
or dl, al
je 0x56ded4
test ecx, ecx
jle 0x56ded4
mov dword [esp + 0x10], 0x1ce
mov dword [esp + 0xc], 0x75b87c
mov dword [esp + 8], 0xa2
mov dword [esp + 4], 0xa6
mov dword [esp], 6
call fcn.0055ae30
jmp 0x56dd0f
mov dword [esp + 4], 0x2000
mov dword [esp], ebx
call fcn.0056fcc0
mov esi, ebp
test eax, eax
je 0x56ddcd
lea eax, [ebp + 7]
mov esi, eax
sar esi, 0x1f
and esi, 7
add esi, eax
sar esi, 3
mov ecx, dword [ebx]
mov eax, dword [ecx + 4]
test byte [ecx + 0x12], 0x10
mov dword [esp + 0x30], eax
je 0x56de10
dec eax
je 0x56e106
mov eax, dword [esp + 0x28]
mov dword [esp + 0xc], ebp
mov dword [esp + 8], eax
mov dword [esp + 4], edi
mov dword [esp], ebx
call dword [ecx + 0x18]
test eax, eax
jns 0x56dd04
xor esi, esi
add esp, 0x4c
mov eax, esi
pop ebx
pop esi
pop edi
pop ebp
ret
test ebp, ebp
jle 0x56deb7
mov eax, dword [ebx + 0xc]
mov dword [esp + 0x3c], eax
lea edx, [edi + eax]
mov eax, dword [esp + 0x28]
sub edx, eax
mov eax, esi
neg eax
cmp edx, eax
seta byte [esp + 0x34]
mov al, byte [esp + 0x34]
cmp edx, esi
setb byte [esp + 0x38]
or al, byte [esp + 0x38]
je 0x56de62
test esi, esi
setg byte [esp + 0x34]
test edx, edx
mov al, byte [esp + 0x34]
setne byte [esp + 0x34]
mov dl, byte [esp + 0x34]
test al, dl
jne 0x56e080
mov eax, dword [esp + 0x3c]
test eax, eax
jne 0x56df60
test dword [ebx + 0x68], ebp
jne 0x56e064
mov eax, dword [esp + 0x28]
mov dword [esp + 0xc], ebp
mov dword [esp + 8], eax
mov dword [esp + 4], edi
mov dword [esp], ebx
call dword [ecx + 0x18]
test eax, eax
je 0x56dea1
mov eax, dword [esp + 0x2c]
mov esi, 1
mov dword [eax], ebp
jmp 0x56dd0f
mov eax, dword [esp + 0x2c]
xor esi, esi
mov dword [eax], 0
add esp, 0x4c
mov eax, esi
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0x2c]
mov dword [eax], 0
xor eax, eax
test ebp, ebp
sete al
add esp, 0x4c
mov esi, eax
mov eax, esi
pop ebx
pop esi
pop edi
pop ebp
ret
mov esi, dword [esp + 0x30]
lea eax, [ebx + 0x6c]
mov dword [esp], edi
mov dword [esp + 8], esi
mov dword [esp + 4], eax
add edi, esi
call fcn.006c4c40
mov edx, 1
mov eax, dword [esp + 0x28]
mov dword [esp + 0x10], ebp
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 8], eax
mov dword [esp + 4], edi
mov dword [esp], ebx
mov dword [esp + 0x34], edx
call fcn.0056d980
test eax, eax
je 0x56de01
cmp dword [esp + 0x30], 1
mov edx, dword [esp + 0x34]
jbe 0x56df34
mov ebp, dword [ebx + 0xc]
test ebp, ebp
je 0x56e190
mov dword [ebx + 0x64], 0
mov esi, 1
test edx, edx
je 0x56dd0f
mov eax, dword [esp + 0x2c]
mov edi, dword [esp + 0x30]
mov esi, edx
mov ecx, dword [eax]
add ecx, edi
mov dword [eax], ecx
jmp 0x56dd0f
cmp dword [esp + 0x30], 0x20
jg 0x56e048
mov eax, dword [esp + 0x3c]
mov esi, dword [esp + 0x30]
sub esi, eax
cmp ebp, esi
lea eax, [ebx + eax + 0x30]
jl 0x56e160
mov ecx, dword [esp + 0x28]
mov dword [esp + 8], esi
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.006c4c40
mov ecx, dword [ebx]
mov edx, dword [esp + 0x30]
lea eax, [ebx + 0x30]
mov dword [esp + 0xc], edx
mov dword [esp + 8], eax
mov dword [esp + 4], edi
mov dword [esp], ebx
call dword [ecx + 0x18]
test eax, eax
je 0x56de01
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x30]
add eax, esi
sub ebp, esi
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x2c]
add edi, ecx
mov esi, ecx
mov dword [eax], ecx
dec esi
and esi, ebp
sub ebp, esi
test ebp, ebp
jle 0x56e005
mov eax, dword [ebx]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0xc], ebp
mov dword [esp + 8], ecx
mov dword [esp + 4], edi
mov dword [esp], ebx
call dword [eax + 0x18]
test eax, eax
je 0x56de01
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax]
add ecx, ebp
mov dword [eax], ecx
test esi, esi
jne 0x56e1c9
mov dword [ebx + 0xc], esi
mov esi, 1
jmp 0x56dd0f
mov eax, dword [esp + 0x28]
mov dword [esp + 0x70], ebp
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x64], edi
mov dword [esp + 0x60], ebx
mov dword [esp + 0x68], eax
add esp, 0x4c
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.0056d980
mov dword [esp + 8], 0x154
mov dword [esp + 4], 0x75b87c
mov dword [esp], 0x75ba30
call fcn.00533360
cmp dword [esp + 0x30], 0x20
jg 0x56e048
mov eax, dword [esp + 0x2c]
mov esi, dword [esp + 0x30]
mov dword [eax], 0
jmp 0x56dfd2
mov dword [esp + 0x10], 0x146
mov dword [esp + 0xc], 0x75b87c
mov dword [esp + 8], 0xa2
mov dword [esp + 4], 0xa7
mov dword [esp], 6
call fcn.0055ae30
xor esi, esi
jmp 0x56de03
mov eax, dword [esp + 0x28]
mov edx, edi
sub edx, eax
mov eax, dword [esp + 0x34]
neg eax
cmp edx, eax
mov dword [esp + 0x38], edx
seta byte [esp + 0x30]
cmp edx, dword [esp + 0x34]
mov dl, byte [esp + 0x30]
setb al
or dl, al
je 0x56dce6
mov eax, dword [esp + 0x34]
test eax, eax
mov eax, dword [esp + 0x38]
setg dl
test eax, eax
setne al
test dl, al
je 0x56dce6
mov dword [esp + 0x10], 0x1b3
jmp 0x56dd7e
mov eax, dword [esp + 0x28]
mov edx, edi
sub edx, eax
mov eax, esi
neg eax
mov dword [esp + 0x30], edx
cmp edx, eax
seta byte [esp + 0x34]
cmp dword [esp + 0x30], esi
mov dl, byte [esp + 0x34]
setb al
or dl, al
je 0x56dde3
mov eax, dword [esp + 0x30]
test esi, esi
setg byte [esp + 0x34]
test eax, eax
mov dl, byte [esp + 0x34]
setne al
test dl, al
je 0x56dde3
mov dword [esp + 0x10], 0x135
jmp 0x56e088
mov edi, dword [esp + 0x28]
mov dword [esp + 8], ebp
mov dword [esp + 4], edi
mov dword [esp], eax
call fcn.006c4c40
mov eax, dword [ebx + 0xc]
add eax, ebp
mov esi, 1
mov dword [ebx + 0xc], eax
mov eax, dword [esp + 0x2c]
mov dword [eax], 0
jmp 0x56dd0f
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x30]
add ebx, 0x6c
mov esi, dword [ecx]
sub esi, edx
mov dword [ecx], esi
mov dword [ebx - 8], 1
mov eax, dword [ecx]
mov dword [esp + 8], edx
add eax, edi
mov dword [esp], ebx
mov dword [esp + 4], eax
call fcn.006c4c40
mov edx, dword [esp + 0x28]
jmp 0x56df3b
mov edx, dword [esp + 0x28]
lea eax, [ebx + 0x30]
add ebp, edx
mov dword [esp + 8], esi
mov dword [esp + 4], ebp
mov dword [esp], eax
call fcn.006c4c40
jmp 0x56e00d
mov dword [esp + 8], 0x1c8
mov dword [esp + 4], 0x75b87c
mov dword [esp], 0x75b9a4
call fcn.00533360
lea esi, [esi]
lea edi, [edi]