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

Disassembly:
sub esp, 0x94
push ebx
push ebp
push esi
mov esi, ecx
mov ecx, dword [esp + 0xac]
push edi
mov edi, edx
mov edx, dword [esp + 0xa8]
or eax, 0xffffffff
lea ebx, [edx + ecx]
lea ecx, [ebx - 1]
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0xb4]
mov dword [esp + 0x10], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x28], eax
xor eax, eax
test ecx, 0xfffffa6f
mov dword [esp + 0x1c], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x20], eax
je 0x561b08
pop edi
pop esi
pop ebp
mov eax, 0xfffffffd
pop ebx
add esp, 0x94
ret 0x18
cmp esi, eax
je 0x562018
cmp edx, eax
je 0x562018
cmp dword [esp + 0xb8], eax
jne 0x561b2e
cmp dword [esp + 0xbc], eax
jg 0x562018
cmp edi, eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x4c], 0x989680
mov dword [esp + 0xa0], eax
je 0x561b6b
mov eax, dword [edi]
test al, 1
je 0x561b52
mov edx, dword [edi + 4]
mov dword [esp + 0x14], edx
test al, 2
je 0x561b5d
mov edx, dword [edi + 8]
mov dword [esp + 0x4c], edx
test al, 4
je 0x561b6b
mov eax, dword [edi + 0xc]
mov dword [esp + 0xa0], eax
cmp dword [esi], 0x50435245
je 0x561b85
pop edi
pop esi
pop ebp
mov eax, 0xfffffffc
pop ebx
add esp, 0x94
ret 0x18
mov eax, dword [esi + 0xc]
movzx ebp, word [esi + 0x18]
mov edx, eax
shr edx, 0x1c
and edx, 1
mov dword [esp + 0x24], edx
movzx edx, word [esi + 0x1a]
imul edx, ebp
mov ebp, dword [esp + 0xb0]
lea edx, [edx + esi + 0x1c]
mov dword [esp + 0x7c], edx
mov edx, dword [esp + 0xa8]
mov dword [esp + 0x80], edx
mov dword [esp + 0x98], ebp
mov ebp, dword [esp + 0xac]
add edx, ebp
mov dword [esp + 0x84], edx
mov dword [esp + 0x18], edx
mov edx, eax
shr edx, 5
and edx, 1
mov ebp, dword [esp + 0xbc]
mov dword [esp + 0x74], edx
mov edx, eax
shr edx, 0xb
and edx, 1
mov dword [esp + 0x70], edx
mov edx, ecx
shr edx, 7
and edx, 1
mov edi, eax
or edi, ecx
mov dword [esp + 0x68], edx
mov edx, ecx
shr ecx, 0xa
and ecx, 1
and eax, 7
shr edx, 8
mov dword [esp + 0x78], ecx
mov ecx, dword [esi + 8]
and edx, 1
mov dword [esp + 0x40], eax
mov dword [esp + 0x5c], ecx
add ecx, 0x340
mov eax, ebp
mov dword [esp + 0x6c], edx
cdq
mov dword [esp + 0x60], ecx
mov ecx, 3
idiv ecx
mov ax, word [esi + 0x12]
shr edi, 4
and edi, 1
mov dword [esp + 0x44], edi
mov dword [esp + 0x9c], 0
sub ebp, edx
test ax, ax
jbe 0x561ca8
movzx ecx, ax
mov eax, 0x55555556
imul ebp
mov eax, edx
shr eax, 0x1f
add edx, eax
cmp ecx, edx
jl 0x561ca8
lea ebp, [ecx + ecx*2 + 3]
lea ecx, [ebp*4]
call dword [0x59c248]
test eax, eax
mov dword [esp + 0x50], eax
jne 0x561c9e
pop edi
pop esi
pop ebp
mov eax, 0xfffffffa
pop ebx
add esp, 0x94
ret 0x18
mov dword [esp + 0x1c], 1
jmp 0x561cb3
mov ecx, dword [esp + 0xb8]
mov dword [esp + 0x50], ecx
lea ecx, [ebp + ebp]
mov eax, 0x55555556
imul ecx
mov ecx, dword [esp + 0xbc]
mov eax, edx
shr eax, 0x1f
add edx, eax
movzx eax, word [esi + 0x10]
lea eax, [eax + eax + 2]
cmp eax, ecx
mov dword [esp + 0x54], ebp
mov dword [esp + 0x58], edx
mov dword [esp + 0x64], 0
mov dword [esp + 0x94], 0xffffffff
mov dword [esp + 0x38], eax
jle 0x561cfd
mov eax, ebp
mov dword [esp + 0x38], eax
mov ecx, dword [esp + 0x50]
test ecx, ecx
je 0x561d2e
cdq
lea ebp, [ecx + ebp*4]
sub eax, edx
sar eax, 1
mov ecx, 1
sub ecx, eax
lea eax, [ebp + ecx*4]
sub ebp, 4
cmp ebp, eax
jb 0x561d2e
nop
mov dword [ebp], 0xffffffff
sub ebp, 4
cmp ebp, eax
jae 0x561d20
test edi, edi
jne 0x561d82
test dword [esi + 0xc], 0x40000000
je 0x561d65
movzx eax, word [esi + 0x14]
mov ecx, eax
and ecx, 0xff
shr eax, 8
and eax, 1
mov dword [esp + 0x10], ecx
mov dword [esp + 0x2c], eax
je 0x561d82
mov edx, dword [esp + 0x5c]
movzx eax, byte [edx + ecx]
mov dword [esp + 0x10], eax
jmp 0x561d82
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x561d82
mov eax, dword [esp + 0x14]
test eax, eax
je 0x561d82
test byte [eax + 4], 1
je 0x561d82
add eax, 5
mov dword [esp + 0x20], eax
test dword [esi + 0xc], 0x20000000
je 0x561db4
movzx eax, word [esi + 0x16]
mov edx, dword [esi + 8]
mov ecx, eax
and ecx, 0xff
shr eax, 8
and eax, 1
mov dword [esp + 0x3c], eax
movzx eax, byte [ecx + edx + 0x100]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x28], eax
mov ebp, dword [esp + 0x10]
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x50]
mov ecx, dword [esp + 0x38]
lea ecx, [edi + ecx*4]
cmp edi, ecx
jae 0x561ddb
sub ecx, edi
dec ecx
shr ecx, 2
inc ecx
or eax, 0xffffffff
rep stosd dword es:[edi], eax
mov edi, dword [esp + 0x50]
test ebp, ebp
jl 0x561e26
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x561e0c
cmp ebx, esi
jae 0x561e94
mov eax, dword [esp + 0x5c]
movzx edx, byte [ebx]
movzx ecx, byte [edx + eax]
cmp ecx, ebp
je 0x561e94
inc ebx
cmp ebx, esi
jb 0x561df3
jmp 0x561e94
cmp ebx, esi
jae 0x561e94
movzx edx, byte [ebx]
cmp edx, ebp
je 0x561e94
inc ebx
cmp ebx, esi
jb 0x561e14
jmp 0x561e94
mov eax, dword [esp + 0x24]
test eax, eax
je 0x561e53
mov eax, dword [esp + 0xb0]
mov ecx, dword [esp + 0x80]
add ecx, eax
cmp ebx, ecx
jbe 0x561e94
cmp ebx, esi
jae 0x561e94
cmp byte [ebx - 1], 0xa
je 0x561e94
inc ebx
cmp ebx, esi
jb 0x561e46
jmp 0x561e94
mov eax, dword [esp + 0x20]
test eax, eax
je 0x561e94
cmp ebx, esi
jae 0x561e94
nop
movzx esi, byte [ebx]
mov ecx, esi
and ecx, 7
mov eax, 1
shl eax, cl
mov ecx, eax
mov eax, esi
mov esi, dword [esp + 0x18]
cdq
and edx, 7
add eax, edx
mov edx, dword [esp + 0x20]
sar eax, 3
mov al, byte [eax + edx]
test al, cl
jne 0x561e90
inc ebx
cmp ebx, esi
jb 0x561e60
mov ebp, dword [esp + 0x10]
mov edx, dword [esp + 0x34]
test edx, edx
jl 0x561eff
mov ecx, esi
sub ecx, ebx
cmp ecx, 0x3e8
jge 0x561eff
mov ecx, dword [esp + 0x30]
xor eax, eax
test ebp, ebp
setge al
add eax, ebx
cmp eax, ecx
jbe 0x561eff
mov ecx, dword [esp + 0x3c]
test ecx, ecx
je 0x561ee4
cmp eax, esi
jae 0x561f45
lea esp, [esp]
movzx ecx, byte [eax]
inc eax
cmp ecx, edx
je 0x561ef6
cmp ecx, dword [esp + 0x28]
je 0x561ef6
cmp eax, esi
jb 0x561ed0
jmp 0x561f45
cmp eax, esi
jae 0x561f45
movzx ecx, byte [eax]
inc eax
cmp ecx, edx
je 0x561ef6
cmp eax, esi
jb 0x561ee8
jmp 0x561f45
dec eax
cmp eax, esi
jae 0x561f45
mov dword [esp + 0x30], eax
mov edx, dword [esp + 0x40]
push 2
push 0
push edx
mov edx, dword [esp + 0x88]
lea eax, [esp + 0x54]
push eax
push 2
mov ecx, ebx
mov dword [esp + 0x9c], ebx
mov dword [esp + 0x5c], 0
call fcn.0055fcc0
test eax, eax
jne 0x561f65
mov eax, dword [esp + 0x44]
inc ebx
test eax, eax
jne 0x561f41
cmp ebx, esi
jbe 0x561dbc
mov edi, dword [esp + 0x50]
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x561f55
mov ecx, edi
call dword [0x59c24c]
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x94
ret 0x18
cmp eax, 1
jne 0x56201d
mov eax, dword [esp + 0x1c]
test eax, eax
mov ebp, dword [esp + 0xbc]
je 0x561fc1
cmp ebp, 4
mov eax, dword [esp + 0x50]
jl 0x561fa8
mov edi, dword [esp + 0xb8]
lea ecx, [ebp*4 - 8]
mov edx, ecx
shr ecx, 2
add edi, 8
lea esi, [eax + 8]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
cmp dword [esp + 0x90], ebp
jle 0x561fb9
mov dword [esp + 0x64], 1
mov ecx, eax
call dword [0x59c24c]
mov eax, dword [esp + 0x64]
test eax, eax
je 0x561fcd
xor eax, eax
jmp 0x561fd9
mov eax, dword [esp + 0x90]
cdq
sub eax, edx
sar eax, 1
cmp ebp, 2
jge 0x561fed
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x94
ret 0x18
mov ecx, dword [esp + 0x80]
mov esi, dword [esp + 0x8c]
mov edx, dword [esp + 0xb8]
sub ebx, ecx
sub esi, ecx
pop edi
mov dword [edx + 4], esi
pop esi
pop ebp
mov dword [edx], ebx
pop ebx
add esp, 0x94
ret 0x18
mov eax, 0xfffffffe
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x94
ret 0x18