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

Disassembly:
mov eax, 0x1000c
call fcn.005817c0
mov eax, dword [0x5ca59c]
push ebx
push ebp
mov ebp, dword [esp + 0x10018]
mov ebx, ecx
mov dword [esp + 0x10010], eax
mov eax, dword [ebx + 0x90]
push edi
xor edi, edi
cmp eax, edi
jne 0x56421d
mov eax, dword [ebx]
mov ecx, dword [eax + 4]
test ch, ch
jns 0x56421d
push 1
push edi
mov eax, ebx
call fcn.00563f40
add esp, 8
sub eax, 8
mov dword [ebx + 0x2c8], eax
lea ecx, [esp + 0x14]
push ebp
push ecx
mov eax, ebx
call fcn.00563ee0
add esp, 8
cmp eax, edi
jne 0x564254
pop edi
pop ebp
mov dword [ebx + 0x9c], 1
or eax, 0xffffffff
pop ebx
mov ecx, dword [esp + 0x10008]
call fcn.005824ab
add esp, 0x1000c
ret
cmp eax, 0xffffffff
jne 0x564274
pop edi
pop ebp
mov eax, 0xfffffffe
pop ebx
mov ecx, dword [esp + 0x10008]
call fcn.005824ab
add esp, 0x1000c
ret
mov eax, dword [ebx + 0x2dc]
cmp eax, edi
push esi
je 0x564396
cmp eax, 7
jne 0x56445a
mov eax, dword [ebx + 0x2d0]
movsx edx, word [esp + 0x1c]
add ebp, 0xfffffff4
cmp eax, 2
movsx eax, word [esp + 0x1e]
lea esi, [ebx + 0x304]
mov dword [esi], eax
movsx eax, word [esp + 0x22]
lea ecx, [ebx + 0x2fc]
mov dword [ecx], edx
movsx edx, word [esp + 0x20]
mov dword [ebx + 0x308], eax
mov eax, 0x88888889
jne 0x564338
mov dword [esp + 0x10], edi
mov dword [ebx + 0x300], edx
mul ebp
mov eax, dword [ebx + 0x4c]
lea edi, [ebx + 0x300]
shr edx, 4
mov ebp, edx
mov edx, dword [ebx]
imul ebp, ebp, 0x70
mov edx, dword [edx + 0x84]
add edx, eax
mov eax, dword [ebx + 0x54]
add eax, ebp
cmp eax, edx
jb 0x5642ff
mov eax, dword [ebx + 0x4c]
mov dword [ebx + 0x54], eax
mov edx, dword [ebx + 0x54]
mov dword [esp + 0x14], edx
lea eax, [esp + 0x14]
push eax
lea edx, [esp + 0x28]
push edx
lea eax, [ebx + 0x308]
push eax
push edi
push esi
push ecx
lea eax, [esp + 0x28]
push eax
mov eax, ebp
cdq
and edx, 3
add eax, edx
sar eax, 2
push eax
call fcn.00565410
add esp, 0x20
jmp 0x56445e
mov dword [ebx + 0x300], edx
mul ebp
mov eax, dword [ebx + 0x4c]
shr edx, 3
mov ebp, edx
mov edx, dword [ebx]
imul ebp, ebp, 0x70
mov dword [esp + 0x14], edi
mov edx, dword [edx + 0x84]
mov edi, dword [ebx + 0x54]
add edx, eax
add edi, ebp
cmp edi, edx
jb 0x564365
mov dword [ebx + 0x54], eax
mov eax, dword [ebx + 0x54]
mov dword [esp + 0x10], eax
lea edx, [esp + 0x10]
push edx
lea eax, [esp + 0x28]
push eax
mov eax, ebp
cdq
push esi
push ecx
and edx, 3
lea ecx, [esp + 0x24]
add eax, edx
push ecx
sar eax, 2
push eax
call fcn.00565290
add esp, 0x18
jmp 0x56445e
movzx ebp, byte [esp + 0x1b]
mov eax, dword [ebx + 0x2d0]
shl ebp, 8
cmp eax, 2
jne 0x5643f9
movzx edx, byte [esp + 0x1a]
movzx eax, byte [esp + 0x19]
movzx ecx, byte [esp + 0x18]
or ebp, edx
mov edx, dword [ebx]
shl ebp, 8
or ebp, eax
mov eax, dword [ebx + 0x4c]
shl ebp, 8
or ebp, ecx
mov ecx, dword [edx + 0x84]
mov edx, dword [ebx + 0x54]
shl ebp, 2
add ecx, eax
add edx, ebp
cmp edx, ecx
jb 0x5643e0
mov dword [ebx + 0x54], eax
mov edi, dword [ebx + 0x54]
mov ecx, ebp
mov eax, ecx
shr ecx, 2
lea esi, [esp + 0x1c]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x56445e
movzx ecx, byte [esp + 0x1a]
movzx edx, byte [esp + 0x19]
movzx eax, byte [esp + 0x18]
or ebp, ecx
mov ecx, dword [ebx]
shl ebp, 8
or ebp, edx
mov edx, dword [ecx + 0x84]
mov ecx, dword [ebx + 0x54]
shl ebp, 8
or ebp, eax
mov eax, dword [ebx + 0x4c]
shl ebp, 2
add edx, eax
add ecx, ebp
cmp ecx, edx
jb 0x564430
mov dword [ebx + 0x54], eax
mov esi, dword [ebx + 0x54]
mov eax, ebp
cdq
and edx, 3
add eax, edx
sar eax, 2
xor ecx, ecx
cmp eax, edi
jle 0x56445e
mov dx, word [esp + ecx*2 + 0x1c]
mov word [esi + 2], dx
mov word [esi], dx
inc ecx
add esi, 4
cmp ecx, eax
jl 0x564444
jmp 0x56445e
mov ebp, dword [esp + 0x10]
mov edx, dword [ebx]
mov eax, dword [edx + 0x3c]
test eax, eax
mov esi, dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
je 0x564476
lea eax, [ebx + 0x8c]
push eax
call esi
mov eax, dword [ebx + 0x78]
lea ecx, [ebx + 0x78]
cdq
idiv dword [ebx + 0x64]
mov edi, dword [ebx + 0x54]
push ecx
shl edx, 4
mov eax, edx
mov edx, dword [ebx + 0x58]
mov dword [eax + edx], edi
mov edx, dword [ebx + 0x58]
mov dword [edx + eax + 4], ebp
mov edx, dword [ebx + 0x8c]
mov edi, dword [ebx + 0x58]
mov dword [edi + eax + 8], edx
mov edi, dword [ebx + 0x58]
lea edx, [ebx + 0x90]
mov dword [esp + 0x14], edx
mov edx, dword [edx]
mov dword [edi + eax + 0xc], edx
add dword [ebx + 0x54], ebp
mov eax, dword [ebx + 0xa0]
add eax, ebp
mov dword [ebx + 0xa0], eax
call esi
add ebx, 0x88
push ebx
call esi
mov ecx, dword [esp + 0x10]
push ecx
call esi
mov ecx, dword [esp + 0x10018]
pop esi
pop edi
pop ebp
mov eax, 2
pop ebx
call fcn.005824ab
add esp, 0x1000c
ret