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

Disassembly:
sub esp, 0x38
push ebx
push ebp
push esi
mov esi, dword [esp + 0x48]
xor ebx, ebx
mov ecx, 4
mov edx, 2
push edi
mov eax, 1
mov edi, 8
push esi
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], ecx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], edx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], ebx
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], edx
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], eax
mov dword [esi + 0x78], ebx
call fcn.00566120
mov al, byte [esi + 0x123]
add esp, 4
test al, al
je 0x56f236
test byte [esi + 0x70], 2
jne 0x56f1cd
mov eax, dword [esi + 0xcc]
add eax, 7
shr eax, 3
mov dword [esi + 0xd0], eax
jmp 0x56f1d9
mov ecx, dword [esi + 0xcc]
mov dword [esi + 0xd0], ecx
movzx eax, byte [esi + 0x124]
mov ebp, dword [esi + 0xc8]
shl eax, 2
mov ebx, dword [esp + eax + 0x2c]
mov ecx, dword [esp + eax + 0x10]
mov edx, ebp
sub edx, ebx
lea eax, [edx + ecx - 1]
xor edx, edx
div ecx
mov cl, byte [esi + 0x129]
cmp cl, 8
movzx ecx, cl
mov dword [esi + 0xe0], eax
jb 0x56f222
shr ecx, 3
imul ecx, eax
lea eax, [ecx + 1]
mov dword [esi + 0xdc], eax
jmp 0x56f25b
imul ecx, eax
add ecx, 7
shr ecx, 3
lea eax, [ecx + 1]
mov dword [esi + 0xdc], eax
jmp 0x56f25b
mov ecx, dword [esi + 0xd8]
mov eax, dword [esi + 0xcc]
mov ebp, dword [esi + 0xc8]
inc ecx
mov dword [esi + 0xd0], eax
mov dword [esi + 0xe0], ebp
mov dword [esi + 0xdc], ecx
mov ebx, dword [esi + 0x70]
test bl, 4
movzx eax, byte [esi + 0x129]
je 0x56f275
cmp byte [esi + 0x127], 8
jae 0x56f275
mov eax, edi
mov edi, ebx
and edi, 0x1000
je 0x56f2df
mov cl, byte [esi + 0x126]
cmp cl, 3
jne 0x56f29f
xor eax, eax
cmp word [esi + 0x11a], ax
setne al
lea eax, [eax*8 + 0x18]
jmp 0x56f2df
test cl, cl
jne 0x56f2bb
cmp eax, 8
jge 0x56f2ad
mov eax, 8
cmp word [esi + 0x11a], 0
je 0x56f2df
add eax, eax
jmp 0x56f2df
cmp cl, 2
jne 0x56f2df
cmp word [esi + 0x11a], 0
je 0x56f2df
lea ecx, [eax*4]
mov eax, 0x55555556
imul ecx
mov eax, edx
shr edx, 0x1f
add eax, edx
mov edx, ebx
and edx, 0x8000
je 0x56f326
mov cl, byte [esi + 0x126]
cmp cl, 3
jne 0x56f2fb
mov eax, 0x20
jmp 0x56f326
test cl, cl
jne 0x56f310
xor ecx, ecx
cmp eax, 8
setg cl
dec ecx
and ecx, 0xfffffff0
add ecx, 0x20
jmp 0x56f324
cmp cl, 2
jne 0x56f326
xor ecx, ecx
cmp eax, 0x20
setg cl
dec ecx
and ecx, 0xffffffe0
add ecx, 0x40
mov eax, ecx
test bh, 0x40
je 0x56f380
cmp word [esi + 0x11a], 0
je 0x56f339
test edi, edi
jne 0x56f36f
test edx, edx
jne 0x56f36f
mov cl, byte [esi + 0x126]
cmp cl, 4
je 0x56f36f
cmp eax, 8
jg 0x56f35e
xor eax, eax
cmp cl, 6
sete al
lea eax, [eax*8 + 0x18]
jmp 0x56f380
xor eax, eax
cmp cl, 6
setne al
dec eax
and eax, 0x10
add eax, 0x30
jmp 0x56f380
xor edx, edx
cmp eax, 0x10
setg dl
dec edx
and edx, 0xffffffe0
add edx, 0x40
mov eax, edx
test ebx, 0x100000
je 0x56f399
movzx ecx, byte [esi + 0x65]
movzx edx, byte [esi + 0x64]
imul ecx, edx
cmp ecx, eax
jle 0x56f399
mov eax, ecx
lea edx, [ebp + 7]
and edx, 0xfffffff8
cmp eax, 8
mov ecx, eax
jl 0x56f3ae
shr ecx, 3
imul ecx, edx
jmp 0x56f3b7
imul ecx, edx
add ecx, 7
shr ecx, 3
add eax, 7
sar eax, 3
lea eax, [eax + ecx + 1]
lea edi, [eax + 0x40]
cmp edi, dword [esi + 0x280]
jbe 0x56f3f8
mov eax, dword [esi + 0x250]
push eax
push esi
call fcn.0056bc70
push edi
push esi
call fcn.0056bc00
add esp, 0x10
mov dword [esi + 0x250], eax
add eax, 0x20
mov dword [esi + 0xec], eax
mov dword [esi + 0x280], edi
cmp dword [esi + 0xd8], 0xfffffffe
jbe 0x56f40f
push str.Row_has_too_many_bytes_to_allocate_in_memory.
push esi
call fcn.00565780
add esp, 8
mov eax, dword [esi + 0xd8]
mov ecx, dword [esi + 0x284]
inc eax
cmp eax, ecx
jbe 0x56f451
mov ecx, dword [esi + 0xe8]
push ecx
push esi
call fcn.0056bc70
mov edx, dword [esi + 0xd8]
inc edx
push edx
push esi
call fcn.0056bc00
mov dword [esi + 0xe8], eax
mov eax, dword [esi + 0xd8]
add esp, 0x10
inc eax
mov dword [esi + 0x284], eax
push eax
mov eax, dword [esi + 0xe8]
push 0
push eax
push esi
call fcn.0056bd20
mov eax, dword [esi + 0x6c]
add esp, 0x10
pop edi
or eax, 0x40
mov dword [esi + 0x6c], eax
pop esi
pop ebp
pop ebx
add esp, 0x38
ret