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

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x244
mov eax, dword [0x5f3ef530]
xor eax, esp
mov dword [esp + 0x240], eax
mov eax, dword [ebp + 8]
push ebx
xor ebx, ebx
mov dword [esp + 0x30], ecx
push esi
push edi
mov dword [esp + 0x40], eax
mov dword [esp + 0x50], ebx
cmp dword [ecx + 8], ebx
je 0x5cafc6
xor eax, eax
jmp 0x5cb98d
mov ecx, dword [ecx + 0xc]
call fcn.005c23fc
mov edi, eax
push ebx
mov dword [esp + 0x2c], edi
call dword [0x5f3faad4]
test eax, eax
js 0x5cafbf
lea eax, [esp + 0x4c]
push eax
push 0x5f390418
push 1
push ebx
push 0x5f390458
call dword [0x5f3faabc]
test eax, eax
jns 0x5cb003
call dword [0x5f3faab8]
jmp 0x5cafbf
mov esi, 0xc8
lea eax, [esp + 0xa0]
push esi
push ebx
push eax
call fcn.005f1972
push esi
lea eax, [esp + 0x190]
push ebx
push eax
call fcn.005f1972
mov esi, ebx
mov edx, ebx
mov ebx, dword [ebp + 0xc]
add esp, 0x18
test bl, 1
je 0x5cb03f
mov esi, 0x80000001
mov edx, 0x1002
mov ecx, 0x200
mov eax, 0x80000006
test ecx, ebx
je 0x5cb065
or edx, ecx
or esi, eax
test ebx, 0x4000
je 0x5cb065
or esi, 0x80000008
or edx, 0x800
test bl, 0x40
je 0x5cb071
or edx, 4
or esi, eax
jmp 0x5cb077
or esi, 0x80008000
test bl, 2
je 0x5cb081
or esi, eax
or edx, 4
test ebx, 0x116
je 0x5cb0b2
test bl, 8
je 0x5cb098
test edi, edi
je 0x5cb09e
or esi, 0x80000020
or edx, 0x2a0
test ebx, 0x4000
je 0x5cb0b2
or esi, 0x80000008
or edx, 0x800
mov eax, ebx
and eax, 0xb
cmp al, 3
je 0x5cb0bf
test bl, bl
jns 0x5cb0c8
or esi, 0x80020000
or edx, 8
push 7
pop ecx
xor eax, eax
mov dword [esp + 0x84], 0x5f39328c
lea edi, [esp + 0x68]
mov dword [esp + 0x88], 0x5f3932a0
rep stosd dword es:[edi], eax
push 2
pop edi
lea eax, [esp + 0x84]
mov dword [esp + 0x7c], edi
mov dword [esp + 0x80], eax
mov eax, 0x2000
mov dword [esp + 0xf4], 1
mov dword [esp + 0xf8], edi
mov dword [esp + 0xfc], edx
mov dword [esp + 0x108], esi
mov dword [esp + 0xa4], 6
mov dword [esp + 0xa8], 0x4c3
push 0x28
pop ecx
mov dword [esp + 0xf0], ecx
mov dword [esp + 0xa0], ecx
test eax, ebx
je 0x5cb16c
cmp dword [esp + 0x28], 0
jne 0x5cb16c
mov eax, edx
mov dword [esp + 0xb4], edx
and eax, 0xfffffdff
mov dword [esp + 0xb0], eax
jmp 0x5cb173
mov dword [esp + 0xac], edx
mov dword [esp + 0xb8], esi
mov eax, ebx
or esi, 0x80008008
mov dword [esp + 0xc8], ecx
push 0xa
mov dword [esp + 0xd4], edi
and eax, 0x400
mov dword [esp + 0xe4], esi
mov dword [esp + 0x11c], ecx
mov dword [esp + 0x124], edi
mov dword [esp + 0x134], esi
mov dword [esp + 0x144], ecx
pop ecx
mov dword [esp + 0x148], edi
lea edi, [esp + 0x180]
mov dword [esp + 0x158], esi
lea esi, [esp + 0x118]
push 0xa
mov dword [esp + 0xd8], edx
mov dword [esp + 0x128], edx
mov dword [esp + 0x150], edx
mov dword [esp + 0xd0], 0x3e0
mov dword [esp + 0x120], 0x10
mov dword [esp + 0x148], 8
rep movsd dword es:[edi], dword [esi]
pop ecx
push 2
pop edx
push 3
mov dword [esp + 0x48], eax
lea esi, [esp + 0x144]
lea edi, [esp + 0x1ac]
mov dword [esp + 0x74], edx
pop eax
rep movsd dword es:[edi], dword [esi]
mov dword [esp + 0x54], eax
je 0x5cb24f
push 0xa
pop ecx
lea esi, [esp + 0xf0]
mov edx, eax
lea edi, [esp + 0x1d0]
mov dword [esp + 0x70], edx
rep movsd dword es:[edi], dword [esi]
test ebx, 0x800
je 0x5cb274
imul eax, edx, 0x28
lea edi, [esp + 0x180]
push 0xa
pop ecx
lea esi, [esp + 0xa0]
add edi, eax
inc edx
rep movsd dword es:[edi], dword [esi]
mov dword [esp + 0x70], edx
test ebx, 0x1000
je 0x5cb299
imul eax, edx, 0x28
lea edi, [esp + 0x180]
push 0xa
pop ecx
lea esi, [esp + 0xc8]
add edi, eax
inc edx
rep movsd dword es:[edi], dword [esi]
mov dword [esp + 0x70], edx
shr ebx, 5
lea eax, [esp + 0x180]
xor edi, edi
mov dword [esp + 0x68], 0x1c
inc edi
mov dword [esp + 0x74], eax
not ebx
and ebx, edi
cmp dword [esp + 0x44], 0
mov dword [esp + 0x78], ebx
je 0x5cb2cf
cmp dword [esp + 0x28], 0
je 0x5cb2cf
or ebx, 2
mov dword [esp + 0x78], ebx
mov ebx, dword [esp + 0x38]
lea edx, [esp + 0x68]
push edx
mov eax, dword [ebx + 0xc]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x50]
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 0xc]
mov ecx, esi
call dword [0x5f3faadc]
call esi
test eax, eax
js 0x5caffb
xor eax, eax
lea ecx, [esp + 0x24]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x4c]
push ecx
push dword [esp + 0x44]
mov esi, dword [eax]
push eax
mov ecx, dword [esi + 0x10]
call dword [0x5f3faadc]
call dword [esi + 0x10]
test eax, eax
js 0x5cb945
cmp dword [esp + 0x24], 0
je 0x5cb945
xor ebx, ebx
xor edi, edi
inc ebx
mov dword [esp + 0x5c], edi
push 0x5f3932b4
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x64], edi
call dword [0x5f3fa910]
or dword [esp + 0x98], 0xffffffff
lea ecx, [esp + 0x58]
mov word [esp + 0x8c], ax
mov eax, dword [esp + 0x24]
push ecx
mov dword [esp + 0x94], edi
lea ecx, [esp + 0x90]
mov dword [esp + 0x98], ebx
mov dword [esp + 0xa0], ebx
mov esi, dword [eax]
push ecx
push eax
mov ecx, dword [esi + 0xc]
call dword [0x5f3faadc]
call dword [esi + 0xc]
test eax, eax
jns 0x5cb3b4
mov eax, dword [esp + 0x24]
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 8]
mov ecx, esi
call dword [0x5f3faadc]
call esi
xor eax, eax
mov dword [esp + 0x24], eax
jmp 0x5cb941
push dword [esp + 0x5c]
call dword [0x5f3fa19c]
mov ecx, edi
mov dword [esp + 0x34], edi
mov dword [esp + 0x2c], edi
mov dword [esp + 0x64], eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x44], edi
cmp dword [eax], edi
jbe 0x5cb8f5
lea edx, [eax + 0x18]
mov dword [esp + 0x40], 0x13
mov dword [esp + 0x18], edx
mov edi, dword [edx - 0xc]
xor eax, eax
mov esi, eax
mov dword [esp + 0x3c], edi
mov eax, dword [edx]
add eax, 0x10
mov dword [esp + 0x2c], esi
mov dword [esp + 0x28], eax
je 0x5cb64c
mov ecx, 0x2011
cmp cx, word [eax]
mov ecx, dword [esp + 0x10]
jne 0x5cb64c
lea ecx, [esp + 0x2c]
push ecx
push dword [eax + 8]
call dword [0x5f3fa7ec]
test eax, eax
js 0x5cb644
push dword [esp + 0x2c]
call dword [0x5f3fa078]
test eax, eax
je 0x5cb637
mov eax, dword [esp + 0x34]
test eax, eax
jne 0x5cb480
push 6
pop ecx
lea edi, [esp + 0x168]
rep stosd dword es:[edi], eax
lea eax, [esp + 0x34]
xor edi, edi
push eax
push 0x2000000
lea eax, [esp + 0x170]
push eax
push edi
call dword [0x5f3fa060]
test eax, eax
jne 0x5cb8ac
mov eax, dword [esp + 0x34]
jmp 0x5cb482
xor edi, edi
lea ecx, [esp + 0x30]
mov dword [esp + 0x30], edi
push ecx
lea ecx, [esp + 0x24]
mov dword [esp + 0x24], edi
push ecx
lea ecx, [esp + 0x34]
push ecx
push ebx
push eax
call dword [0x5f3fa088]
test eax, eax
jne 0x5cb613
mov eax, dword [esp + 0x30]
cmp dword [eax], 5
jne 0x5cb613
mov esi, edi
mov dword [esp + 0x1c], edi
mov dword [esp + 0x48], edi
xor ecx, ecx
movzx edi, word [eax + 4]
mov edx, ecx
mov eax, dword [esp + 0x20]
mov dword [esp + 0x14], esi
test eax, eax
je 0x5cb547
cmp dword [eax], ecx
je 0x5cb547
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x5cb547
call fcn.005cabf5
mov ecx, eax
mov dword [esp + 0x1c], ecx
test ecx, ecx
jne 0x5cb511
mov ecx, dword [esp + 0x2c]
call fcn.005cac45
mov ecx, eax
mov dword [esp + 0x48], ecx
test ecx, ecx
je 0x5cb524
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
mov eax, dword [eax + 4]
mov esi, dword [eax + 4]
jmp 0x5cb516
mov esi, 0x5f393274
mov dword [esp + 0x14], esi
test ecx, ecx
jne 0x5cb52a
cmp dword [esp + 0x48], ecx
jne 0x5cb52a
xor eax, eax
mov edx, eax
jmp 0x5cb547
mov ecx, esi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, word [esp + 0x50]
jne 0x5cb52f
sub ecx, edx
sar ecx, 1
lea edx, [ecx*2 + 2]
mov eax, dword [esp + 0x10]
add edi, 2
add edi, edx
test eax, eax
je 0x5cb5a0
mov ecx, eax
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, word [esp + 0x50]
jne 0x5cb559
sub ecx, edx
sar ecx, 1
lea eax, [ecx*2 + 2]
cmp eax, edi
jge 0x5cb5ab
push 2
push edi
push dword [esp + 0x18]
call dword [0x5f3fa124]
test eax, eax
je 0x5cb58c
mov dword [esp + 0x10], eax
jmp 0x5cb5af
push dword [esp + 0x10]
call dword [0x5f3fa1f4]
xor ecx, ecx
mov eax, ecx
mov dword [esp + 0x10], eax
jmp 0x5cb5b1
push edi
push 0x40
call dword [0x5f3fa1b8]
jmp 0x5cb586
mov eax, dword [esp + 0x10]
xor ecx, ecx
test eax, eax
je 0x5cb8bb
push edi
push ecx
push eax
call fcn.005f1972
add esp, 0xc
cmp dword [esp + 0x1c], ebx
je 0x5cb5d0
cmp dword [esp + 0x48], ebx
jne 0x5cb5fa
test esi, esi
je 0x5cb5fa
push dword [esp + 0x14]
mov esi, edi
shr esi, 1
push esi
push dword [esp + 0x18]
call dword [0x5f3faa94]
push 0x5f390958
push esi
push dword [esp + 0x24]
call dword [0x5f3faa94]
add esp, 0x18
mov eax, dword [esp + 0x30]
shr edi, 1
push dword [eax + 8]
push edi
push dword [esp + 0x18]
call dword [0x5f3faa94]
add esp, 0xc
mov esi, ebx
mov eax, dword [esp + 0x30]
test eax, eax
je 0x5cb622
push eax
call dword [0x5f3fa070]
cmp dword [esp + 0x20], 0
je 0x5cb633
push dword [esp + 0x20]
call dword [0x5f3fa070]
mov edi, dword [esp + 0x3c]
mov eax, dword [esp + 0x28]
push dword [eax + 8]
call dword [0x5f3fa7e8]
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
xor eax, eax
mov dword [esp + 0x3c], ebx
mov ebx, eax
mov dword [esp + 0x14], ebx
test edi, edi
je 0x5cb694
cmp word [edi], ax
je 0x5cb694
test esi, esi
jne 0x5cb694
push edi
call dword [0x5f3fa1b4]
test eax, eax
je 0x5cb68f
cmp word [edi + eax*2], 0x2f
jne 0x5cb681
test ebx, ebx
jne 0x5cb688
mov ebx, eax
mov dword [esp + 0x14], ebx
sub eax, 1
jne 0x5cb670
jmp 0x5cb68f
inc eax
sub ebx, eax
mov dword [esp + 0x14], ebx
lea edi, [edi + eax*2]
jmp 0x5cb6b4
mov dword [esp + 0x3c], eax
test esi, esi
je 0x5cb6a0
mov edi, ecx
jmp 0x5cb6b4
mov edi, dword [edx - 0x10]
test edi, edi
je 0x5cb87b
cmp word [edi], ax
je 0x5cb87b
push edi
call dword [0x5f3fa1b4]
test eax, eax
je 0x5cb877
lea eax, [eax*2 + 2]
push eax
mov dword [esp + 0x20], eax
xor eax, eax
push eax
call dword [0x5f3fa1b8]
mov esi, eax
test esi, esi
je 0x5cb8e6
mov eax, dword [esp + 0x1c]
shr eax, 1
push edi
push eax
push esi
mov dword [esp + 0x28], eax
call dword [0x5f3faa98]
add esp, 0xc
cmp dword [esp + 0x3c], 0
je 0x5cb834
test ebx, ebx
je 0x5cb70e
push 0x5c
pop eax
mov word [esi + ebx*2], ax
xor eax, eax
mov edx, eax
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
movzx ecx, word [eax]
cmp cx, word [esp + 0x40]
je 0x5cb729
cmp cx, word [esp + 0x54]
jne 0x5cb72c
mov edx, dword [eax + 8]
cmp cx, word [esp + 0x40]
je 0x5cb7a9
cmp cx, word [esp + 0x54]
je 0x5cb7a9
test cx, cx
jne 0x5cb834
mov eax, dword [esp + 0x18]
push 0x5f3932f0
mov ebx, dword [eax - 8]
push ebx
call dword [0x5f3faa9c]
pop ecx
pop ecx
test eax, eax
je 0x5cb834
push 0x5f3932fc
push ebx
call dword [0x5f3faa9c]
pop ecx
pop ecx
test eax, eax
je 0x5cb834
push 0x5f393310
push ebx
call dword [0x5f3faa9c]
pop ecx
pop ecx
test eax, eax
je 0x5cb834
push 0x5f393350
push ebx
call dword [0x5f3faa9c]
pop ecx
pop ecx
test eax, eax
je 0x5cb834
mov eax, dword [esp + 0x14]
inc eax
jmp 0x5cb7bc
mov ecx, 0x2000
test dl, 1
je 0x5cb7d1
test word [eax + 0x10], cx
je 0x5cb7d1
lea eax, [ebx + 1]
lea eax, [edi + eax*2]
push eax
mov eax, dword [esp + 0x20]
push eax
push esi
call dword [0x5f3faa98]
add esp, 0xc
jmp 0x5cb834
test dl, 4
je 0x5cb834
test word [eax + 0x10], cx
je 0x5cb834
xor ecx, ecx
mov dword [esp + 0x14], ecx
lea ecx, [esp + 0x14]
push ecx
push dword [eax + 0x18]
call dword [0x5f3fa7ec]
test eax, eax
js 0x5cb834
push dword [esp + 0x14]
call dword [0x5f3fa078]
test eax, eax
je 0x5cb825
mov ecx, dword [esp + 0x14]
call fcn.005cacf1
test eax, eax
jne 0x5cb825
lea eax, [ebx + 1]
lea eax, [edi + eax*2]
push eax
mov eax, dword [esp + 0x20]
push eax
push esi
call dword [0x5f3faa98]
add esp, 0xc
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
push dword [eax + 0x18]
call dword [0x5f3fa7e8]
mov ebx, dword [esp + 0x38]
mov edi, dword [ebx + 8]
jmp 0x5cb84d
push esi
push dword [edi]
call dword [0x5f3fa1e4]
test eax, eax
je 0x5cb89f
mov edi, dword [edi + 4]
test edi, edi
jne 0x5cb83d
test esi, esi
je 0x5cb877
push 8
push 0x40
call dword [0x5f3fa1b8]
mov ecx, eax
test ecx, ecx
je 0x5cb8ec
mov dword [ecx + 4], edi
mov dword [ecx], esi
mov eax, dword [ebx + 8]
mov dword [ecx + 4], eax
mov dword [ebx + 8], ecx
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x44]
add edx, 0x18
mov eax, dword [esp + 0x64]
inc ecx
mov dword [esp + 0x44], ecx
mov dword [esp + 0x18], edx
cmp ecx, dword [eax]
jae 0x5cb8f5
mov ecx, dword [esp + 0x10]
xor ebx, ebx
inc ebx
jmp 0x5cb3eb
push esi
call dword [0x5f3fa1f4]
xor edi, edi
mov esi, edi
jmp 0x5cb851
mov eax, dword [esp + 0x28]
push dword [eax + 8]
call dword [0x5f3fa7e8]
jmp 0x5cb8f8
mov eax, dword [esp + 0x30]
test eax, eax
je 0x5cb8ca
push eax
call dword [0x5f3fa070]
mov eax, dword [esp + 0x20]
test eax, eax
je 0x5cb8d9
push eax
call dword [0x5f3fa070]
mov eax, dword [esp + 0x28]
push dword [eax + 8]
call dword [0x5f3fa7e8]
xor eax, eax
mov edi, eax
jmp 0x5cb8f8
push esi
call dword [0x5f3fa1f4]
jmp 0x5cb8f8
xor edi, edi
inc edi
push dword [esp + 0x5c]
call dword [0x5f3fa198]
lea eax, [esp + 0x58]
push eax
call dword [0x5f3faacc]
mov eax, dword [esp + 0x24]
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 8]
mov ecx, esi
call dword [0x5f3faadc]
call esi
cmp dword [esp + 0x34], 0
je 0x5cb932
push dword [esp + 0x34]
call dword [0x5f3fa074]
mov eax, dword [esp + 0x10]
test eax, eax
je 0x5cb941
push eax
call dword [0x5f3fa1f4]
mov ebx, dword [esp + 0x38]
mov eax, dword [esp + 0x4c]
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 8]
mov ecx, esi
call dword [0x5f3faadc]
call esi
call dword [0x5f3faab8]
test edi, edi
jne 0x5cb98b
jmp 0x5cb97f
cmp dword [esi], 0
je 0x5cb972
push dword [esi]
call dword [0x5f3fa1f4]
mov eax, dword [esi + 4]
push esi
mov dword [ebx + 8], eax
call dword [0x5f3fa1f4]
mov esi, dword [ebx + 8]
test esi, esi
jne 0x5cb965
xor eax, eax
mov dword [ebx + 8], eax
mov eax, edi
mov ecx, dword [esp + 0x24c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.005f0f0a
mov esp, ebp
pop ebp
ret 8