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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x24
push ebx
mov ebx, ecx
push esi
push edi
mov dword [esp + 0x14], ebx
mov eax, dword [ebx + 0x1068]
cmp eax, 0xffffffff
je 0x56274d
cmp eax, 0xfffffffe
jne 0x561f9d
cmp byte [ebx + 0x1064], 0
jne 0x561eb2
cmp byte [ebx + 0x1063], 0
lea ecx, [ebx + 0x20]
mov edx, 0x10000
mov eax, 0x8000
cmovne eax, edx
push eax
call fcn.00557b10
test al, al
jne 0x561eb2
mov eax, 0x8007000e
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
cmp byte [ebx + 0x1066], 0
je 0x561f0a
lea ecx, [ebx + 0x50]
push 0x100000
call fcn.00554cf0
test al, al
je 0x561ea4
mov eax, dword [ebx + 0x58]
mov dword [ebx + 0x60], 0
mov dword [ebx + 0x64], 0
mov dword [ebx + 0x50], eax
mov dword [ebx + 0x54], eax
mov byte [ebx + 0x6c], 0
mov dword [ebx + 0x70], 0
mov dword [ebx + 0x48], 0x20
mov dword [ebx + 0x4c], 0
mov dword [ebx + 0x78], 0
mov byte [ebx + 0x1066], 0
cmp byte [ebx + 0x1064], 0
jne 0x561f39
mov eax, dword [ebx + 0x30]
mov dword [ebx + 0x2c], 0
mov dword [ebx + 0x28], eax
mov dword [ebx + 0x24], 0
mov dword [ebx + 0x38], 0
mov dword [ebx + 0x3c], 0
mov byte [ebx + 0x44], 0
mov byte [ebx + 0x1060], 0
mov dword [ebx + 0x1068], 0
mov byte [ebx + 0x1067], 1
mov edx, dword [ebp + 8]
mov dword [esp + 0x10], edx
cmp dword [ebp + 0x10], 0
xorps xmm0, xmm0
movlpd qword [esp + 0x28], xmm0
mov ecx, 0x20
je 0x56200e
mov esi, dword [ebx + 0x50]
xor edi, edi
sub esi, dword [ebx + 0x58]
mov eax, ecx
sub eax, dword [ebx + 0x48]
shr eax, 3
sub esi, eax
sbb edi, edi
add esi, dword [ebx + 0x70]
adc edi, 0
add esi, dword [ebx + 0x60]
mov dword [esp + 0x1c], esi
adc edi, dword [ebx + 0x64]
mov dword [esp + 0x20], edi
jmp 0x56201e
test eax, eax
je 0x561f51
mov edx, dword [ebp + 8]
mov dword [esp + 0x10], edx
test edx, edx
je 0x561f58
nop dword [eax]
dec eax
mov dword [ebx + 0x1068], eax
mov esi, dword [ebx + 0x24]
mov edx, esi
mov eax, dword [ebx + 0x106c]
sub edx, eax
dec edx
cmp eax, esi
jb 0x561fcc
add edx, dword [ebx + 0x30]
mov ecx, dword [ebx + 0x20]
mov al, byte [ecx + edx]
mov byte [ecx + esi], al
inc esi
mov dword [ebx + 0x24], esi
cmp esi, dword [ebx + 0x28]
jne 0x561fee
lea ecx, [ebx + 0x20]
call fcn.00557bd0
test eax, eax
jne 0x562766
mov edx, dword [esp + 0x10]
mov eax, dword [ebx + 0x1068]
dec edx
mov dword [esp + 0x10], edx
test eax, eax
je 0x561f58
test edx, edx
jne 0x561fb0
jmp 0x561f58
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x1c], eax
mov al, byte [ebp + 0xc]
test edx, edx
jne 0x56202d
test al, al
je 0x562728
mov eax, dword [ebx + 0x70]
lea esi, [ebx + 0x48]
cmp eax, 4
ja 0x562758
mov edx, 0x20
shl eax, 3
sub edx, dword [esi]
cmp edx, eax
jb 0x562758
cmp byte [ebx + 0x1067], 0
je 0x5620df
cmp byte [ebx + 0x1060], 0
jne 0x56272d
cmp dword [ebp + 0x10], 0
mov edi, esi
je 0x5620a9
mov ecx, dword [esi + 8]
xor eax, eax
sub ecx, dword [esi + 0x10]
shr edx, 3
sub ecx, edx
sbb eax, eax
add ecx, dword [esi + 0x28]
adc eax, 0
add ecx, dword [esi + 0x18]
adc eax, dword [esi + 0x1c]
sub ecx, dword [esp + 0x1c]
sbb eax, dword [esp + 0x20]
test eax, eax
ja 0x56274d
jb 0x5620a6
cmp ecx, dword [ebp + 0x10]
jae 0x56274d
lea edi, [ebx + 0x48]
mov ecx, ebx
mov esi, edi
call fcn.00561610
test al, al
je 0x562758
mov eax, dword [edi + 0x28]
cmp eax, 4
ja 0x562758
mov ecx, 0x20
shl eax, 3
sub ecx, dword [edi]
cmp ecx, eax
jb 0x562758
mov byte [ebx + 0x1067], 0
cmp byte [ebx + 0x1061], 0
mov edx, dword [esp + 0x10]
je 0x562235
cmp byte [ebp + 0xc], 0
je 0x562106
test edx, edx
jne 0x562106
cmp dword [ebx + 0x1058], edx
jne 0x562758
mov eax, dword [ebx + 0x1058]
mov ebx, eax
mov ecx, dword [esp + 0x14]
cmp eax, edx
cmova ebx, edx
sub eax, ebx
sub edx, ebx
mov dword [ecx + 0x1058], eax
mov dword [esp + 0x10], edx
test ebx, ebx
je 0x56221c
lea esi, [ecx + 0x20]
mov eax, dword [ecx + 0x48]
cmp eax, 0x20
je 0x562176
mov dl, byte [ecx + 0x78]
lea esi, [ecx + 0x20]
shr dword [ecx + 0x78], 8
add eax, 8
mov dword [ecx + 0x48], eax
mov ecx, dword [esi + 4]
mov eax, dword [esi]
mov byte [ecx + eax], dl
inc ecx
mov dword [esi + 4], ecx
cmp ecx, dword [esi + 8]
jne 0x562168
mov ecx, esi
call fcn.00557bd0
test eax, eax
jne 0x56277d
mov ecx, dword [esp + 0x14]
sub ebx, 1
jne 0x562130
jmp 0x562218
lea edx, [ecx + 0x50]
mov dword [esp + 0x18], edx
nop dword [eax]
mov ecx, dword [esi + 8]
sub ecx, dword [esi + 4]
mov edi, dword [esi]
add edi, dword [esi + 4]
cmp ecx, ebx
mov dword [esp + 0x24], edi
mov edi, ebx
cmovbe edi, ecx
test edi, edi
je 0x562758
mov eax, dword [edx + 4]
mov ecx, dword [edx]
sub eax, ecx
jne 0x5621c2
mov ecx, edx
call fcn.00554db0
test al, al
je 0x562758
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x50]
mov eax, dword [eax + 0x54]
sub eax, ecx
cmp edi, eax
cmova edi, eax
push edi
push ecx
push dword [esp + 0x2c]
call fcn.0058aed0
mov edx, dword [esp + 0x24]
add esp, 0xc
add dword [edx], edi
test edi, edi
je 0x562758
mov eax, dword [esi + 8]
mov ecx, dword [esi + 4]
sub eax, ecx
cmp eax, edi
jbe 0x5621f7
lea eax, [edi + ecx]
mov dword [esi + 4], eax
jmp 0x562210
mov eax, dword [esi + 8]
mov ecx, esi
mov dword [esi + 4], eax
call fcn.00557bd0
test eax, eax
jne 0x562794
mov edx, dword [esp + 0x18]
sub ebx, edi
jne 0x562180
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
cmp dword [ebx + 0x1058], 0
sete al
mov byte [ebx + 0x1067], al
jmp 0x56201e
test edx, edx
je 0x562624
nop dword [eax]
cmp dword [ebx + 0x70], 4
ja 0x562758
mov edi, dword [esi]
cmp edi, 8
jb 0x5622a9
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jb 0x562270
lea ecx, [esi + 8]
call fcn.00554db0
test al, al
jne 0x56226d
inc dword [esi + 0x28]
or cl, 0xff
jmp 0x562276
mov eax, dword [esi + 8]
mov cl, byte [eax]
inc eax
mov dword [esi + 8], eax
mov edi, dword [esi]
movzx edx, cl
mov ecx, 0x20
sub ecx, edi
mov eax, edx
shl eax, cl
add edi, 0xfffffff8
or dword [esi + 0x30], eax
mov eax, dword [esi + 4]
movzx ecx, byte [edx + 0x602840]
shl eax, 8
or ecx, eax
mov dword [esi], edi
mov dword [esi + 4], ecx
cmp edi, 8
jae 0x562251
mov ebx, dword [esp + 0x14]
mov edx, dword [esi + 4]
mov ecx, 8
sub ecx, edi
shr edx, cl
shr edx, 9
and edx, 0x7fff
mov eax, edx
shr eax, 5
cmp eax, dword [ebx + 0x80]
jb 0x56230e
lea eax, [ebx + 0x84]
mov edi, 0xb
cmp edx, dword [eax]
jb 0x5622f1
nop word [eax + eax]
lea eax, [eax + 4]
inc edi
cmp edx, dword [eax]
jae 0x5622e0
cmp edi, 0xf
ja 0x562758
mov ecx, 0xf
sub ecx, edi
shr edx, cl
mov ecx, edi
sub edx, dword [ebx + edi*4 + 0x70]
movzx eax, word [ebx + edx*2 + 0x4b0]
add dword [esi], edi
mov edx, dword [esi]
jmp 0x562323
movzx ecx, byte [eax + ebx + 0xb0]
movzx eax, word [ebx + eax*2 + 0x4b0]
lea edx, [edi + ecx]
mov dword [esi], edx
shr dword [esi + 0x30], cl
mov ebx, dword [esi + 0x30]
movzx ecx, ax
mov dword [esp + 0x18], ebx
cmp ecx, 0x100
jae 0x56236c
mov ebx, dword [esp + 0x14]
mov edx, dword [ebx + 0x24]
mov eax, dword [ebx + 0x20]
mov byte [edx + eax], cl
inc edx
mov dword [ebx + 0x24], edx
cmp edx, dword [ebx + 0x28]
jne 0x56235e
lea ecx, [ebx + 0x20]
call fcn.00557bd0
test eax, eax
jne 0x5627ab
mov edx, dword [esp + 0x10]
dec edx
mov dword [esp + 0x10], edx
jmp 0x5625fd
je 0x562615
mov eax, dword [esp + 0x14]
cmp byte [eax + 0x1063], 0
je 0x56238d
mov al, byte [ecx + 0x5c541f]
mov cl, byte [ecx + 0x5c53ff]
jmp 0x562399
mov al, byte [ecx + 0x5c53df]
mov cl, byte [ecx + 0x5c543f]
movzx ecx, cl
movzx eax, al
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], eax
cmp edx, 8
jb 0x56240f
nop dword [eax]
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jb 0x5623cf
lea ecx, [esi + 8]
call fcn.00554db0
test al, al
jne 0x5623cc
inc dword [esi + 0x28]
or cl, 0xff
jmp 0x5623d5
mov eax, dword [esi + 8]
mov cl, byte [eax]
inc eax
mov dword [esi + 8], eax
mov edx, dword [esi]
movzx eax, cl
mov ecx, 0x20
sub ecx, edx
mov ebx, eax
shl ebx, cl
add edx, 0xfffffff8
or ebx, dword [esi + 0x30]
movzx ecx, byte [eax + 0x602840]
mov eax, dword [esi + 4]
shl eax, 8
or ecx, eax
mov dword [esp + 0x18], ebx
mov dword [esi + 0x30], ebx
mov dword [esi + 4], ecx
mov dword [esi], edx
cmp edx, 8
jae 0x5623b0
mov ecx, dword [esp + 0x24]
add edx, ecx
shr ebx, cl
mov eax, 1
mov dword [esp + 0x24], edx
shl eax, cl
mov ecx, dword [esp + 0x28]
dec eax
and eax, dword [esp + 0x18]
add ecx, 3
add eax, ecx
mov dword [esi], edx
mov dword [esi + 0x30], ebx
mov dword [esp + 0x18], eax
cmp edx, 8
jb 0x56249b
nop word [eax + eax]
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jb 0x56245f
lea ecx, [esi + 8]
call fcn.00554db0
test al, al
jne 0x56245c
inc dword [esi + 0x28]
or cl, 0xff
jmp 0x562465
mov eax, dword [esi + 8]
mov cl, byte [eax]
inc eax
mov dword [esi + 8], eax
mov edx, dword [esi]
movzx eax, cl
mov ecx, 0x20
sub ecx, edx
mov ebx, eax
shl ebx, cl
add edx, 0xfffffff8
or ebx, dword [esi + 0x30]
movzx ecx, byte [eax + 0x602840]
mov eax, dword [esi + 4]
shl eax, 8
or ecx, eax
mov dword [esi + 0x30], ebx
mov dword [esi + 4], ecx
mov dword [esp + 0x24], edx
mov dword [esi], edx
cmp edx, 8
jae 0x562440
mov eax, dword [esp + 0x14]
mov ecx, 8
sub ecx, edx
mov edx, dword [esi + 4]
shr edx, cl
shr edx, 9
and edx, 0x7fff
mov edi, edx
shr edi, 9
cmp edi, dword [eax + 0xedc]
jb 0x562507
add eax, 0xee0
mov edi, 7
cmp edx, dword [eax]
jb 0x5624e1
nop
lea eax, [eax + 4]
inc edi
cmp edx, dword [eax]
jae 0x5624d0
cmp edi, 0xf
ja 0x562758
mov eax, dword [esp + 0x14]
mov ecx, 0xf
sub ecx, edi
shr edx, cl
mov ecx, edi
sub edx, dword [eax + edi*4 + 0xeec]
mov al, byte [edx + eax + 0xf7c]
add dword [esi], edi
mov edx, dword [esi]
mov ebx, dword [esi + 0x30]
jmp 0x562526
mov dl, byte [edi + eax + 0xf7c]
movzx ecx, byte [edi + eax + 0xf2c]
mov byte [esp + 0xf], dl
mov edx, dword [esp + 0x24]
mov al, byte [esp + 0xf]
add edx, ecx
mov dword [esi], edx
movzx eax, al
shr ebx, cl
mov dword [esi + 0x30], ebx
mov dword [esp + 0x24], eax
movzx ecx, byte [eax + 0x5c5560]
mov dword [esp + 0x28], ecx
cmp edx, 8
jb 0x56259d
mov eax, dword [esi + 8]
cmp eax, dword [esi + 0xc]
jb 0x562561
lea ecx, [esi + 8]
call fcn.00554db0
test al, al
jne 0x56255e
inc dword [esi + 0x28]
or cl, 0xff
jmp 0x562567
mov eax, dword [esi + 8]
mov cl, byte [eax]
inc eax
mov dword [esi + 8], eax
mov edx, dword [esi]
movzx eax, cl
mov ecx, 0x20
sub ecx, edx
mov ebx, eax
shl ebx, cl
add edx, 0xfffffff8
or ebx, dword [esi + 0x30]
movzx ecx, byte [eax + 0x602840]
mov eax, dword [esi + 4]
shl eax, 8
or ecx, eax
mov dword [esi + 0x30], ebx
mov dword [esi + 4], ecx
mov dword [esi], edx
cmp edx, 8
jae 0x562542
mov ecx, dword [esp + 0x28]
lea eax, [edx + ecx]
mov edi, 1
mov dword [esi], eax
mov eax, ebx
shr eax, cl
shl edi, cl
mov ecx, dword [esp + 0x18]
dec edi
mov dword [esi + 0x30], eax
and edi, ebx
mov eax, dword [esp + 0x24]
mov ebx, dword [esp + 0x14]
add edi, dword [eax*4 + 0x5c5580]
mov eax, ecx
cmp ecx, dword [esp + 0x10]
lea ecx, [ebx + 0x20]
cmova eax, dword [esp + 0x10]
push eax
push edi
mov dword [esp + 0x30], eax
call fcn.0048e930
test al, al
je 0x562758
mov edx, dword [esp + 0x10]
sub edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x10], edx
sub ecx, dword [esp + 0x28]
jne 0x562607
test edx, edx
jne 0x562240
jmp 0x562624
mov dword [ebx + 0x1068], ecx
mov dword [ebx + 0x106c], edi
jmp 0x562624
mov ebx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
mov byte [ebx + 0x1067], 1
mov al, byte [ebp + 0xc]
test al, al
je 0x562021
test edx, edx
jne 0x56202d
mov esi, dword [ebx + 0x48]
cmp esi, 8
jb 0x562696
nop
mov eax, dword [ebx + 0x50]
cmp eax, dword [ebx + 0x54]
jb 0x56265f
lea ecx, [ebx + 0x50]
call fcn.00554db0
test al, al
jne 0x56265c
inc dword [ebx + 0x70]
or cl, 0xff
jmp 0x562665
mov eax, dword [ebx + 0x50]
mov cl, byte [eax]
inc eax
mov dword [ebx + 0x50], eax
mov esi, dword [ebx + 0x48]
movzx edx, cl
mov ecx, 0x20
sub ecx, esi
mov eax, edx
shl eax, cl
add esi, 0xfffffff8
or dword [ebx + 0x78], eax
mov eax, dword [ebx + 0x4c]
movzx ecx, byte [edx + 0x602840]
shl eax, 8
or ecx, eax
mov dword [ebx + 0x48], esi
mov dword [ebx + 0x4c], ecx
cmp esi, 8
jae 0x562640
mov eax, dword [ebx + 0x4c]
mov ecx, 8
sub ecx, esi
shr eax, cl
shr eax, 9
and eax, 0x7fff
mov edx, eax
shr edx, 5
cmp edx, dword [ebx + 0x80]
jb 0x5626f3
lea ecx, [ebx + 0x84]
mov edx, 0xb
cmp eax, dword [ecx]
jb 0x5626d7
lea ecx, [ecx + 4]
inc edx
cmp eax, dword [ecx]
jae 0x5626c6
cmp edx, 0xf
ja 0x562758
mov ecx, 0xf
sub ecx, edx
shr eax, cl
mov ecx, edx
sub eax, dword [ebx + edx*4 + 0x70]
movzx eax, word [ebx + eax*2 + 0x4b0]
add dword [ebx + 0x48], edx
jmp 0x56270b
movzx ecx, byte [edx + ebx + 0xb0]
movzx edx, word [ebx + edx*2 + 0x4b0]
lea eax, [ecx + esi]
mov dword [ebx + 0x48], eax
mov eax, edx
shr dword [ebx + 0x78], cl
mov ecx, 0x100
cmp ax, cx
jne 0x562758
mov edx, dword [esp + 0x10]
mov byte [ebx + 0x1067], 1
jmp 0x56201e
lea esi, [ebx + 0x48]
jmp 0x562737
mov dword [ebx + 0x1068], 0xffffffff
mov eax, dword [esi + 0x28]
cmp eax, 4
ja 0x562758
mov ecx, 0x20
shl eax, 3
sub ecx, dword [esi]
cmp ecx, eax
jb 0x562758
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret 0xc
push eax
lea ecx, [esp + 0x28]
call fcn.004c9230
push 0x5f7c74
mov eax, ecx
push eax
call fcn.0058acc1
push eax
lea ecx, [esp + 0x2c]
call fcn.004c9230
push 0x5f7c74
mov eax, ecx
push eax
call fcn.0058acc1
push eax
lea ecx, [esp + 0x2c]
call fcn.004c9230
push 0x5f7c74
mov eax, ecx
push eax
call fcn.0058acc1
push eax
lea ecx, [esp + 0x2c]
call fcn.004c9230
push 0x5f7c74
mov eax, ecx
push eax
call fcn.0058acc1
int3