Function at 0x69f0cc
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 0x69f108
xor eax, eax
jmp 0x69facf
mov ecx, dword [ecx + 0xc]
call fcn.0069653e
mov edi, eax
push ebx
mov dword [esp + 0x2c], edi
call dword [0x5f3faad4]
test eax, eax
js 0x69f101
lea eax, [esp + 0x4c]
push eax
push 0x5f390418
push 1
push ebx
push 0x5f390458
call dword [0x5f3faabc]
test eax, eax
jns 0x69f145
call dword [0x5f3faab8]
jmp 0x69f101
mov esi, 0xc8
lea eax, [esp + 0xa0]
push esi
push ebx
push eax
call fcn.006c5ab4
push esi
lea eax, [esp + 0x190]
push ebx
push eax
call fcn.006c5ab4
mov esi, ebx
mov edx, ebx
mov ebx, dword [ebp + 0xc]
add esp, 0x18
test bl, 1
je 0x69f181
mov esi, 0x80000001
mov edx, 0x1002
mov ecx, 0x200
mov eax, 0x80000006
test ecx, ebx
je 0x69f1a7
or edx, ecx
or esi, eax
test ebx, 0x4000
je 0x69f1a7
or esi, 0x80000008
or edx, 0x800
test bl, 0x40
je 0x69f1b3
or edx, 4
or esi, eax
jmp 0x69f1b9
or esi, 0x80008000
test bl, 2
je 0x69f1c3
or esi, eax
or edx, 4
test ebx, 0x116
je 0x69f1f4
test bl, 8
je 0x69f1da
test edi, edi
je 0x69f1e0
or esi, 0x80000020
or edx, 0x2a0
test ebx, 0x4000
je 0x69f1f4
or esi, 0x80000008
or edx, 0x800
mov eax, ebx
and eax, 0xb
cmp al, 3
je 0x69f201
test bl, bl
jns 0x69f20a
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 0x69f2ae
cmp dword [esp + 0x28], 0
jne 0x69f2ae
mov eax, edx
mov dword [esp + 0xb4], edx
and eax, 0xfffffdff
mov dword [esp + 0xb0], eax
jmp 0x69f2b5
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 0x69f391
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 0x69f3b6
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 0x69f3db
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 0x69f411
cmp dword [esp + 0x28], 0
je 0x69f411
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 0x69f13d
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 0x69fa87
cmp dword [esp + 0x24], 0
je 0x69fa87
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 0x69f4f6
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 0x69fa83
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 0x69fa37
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 0x69f78e
mov ecx, 0x2011
cmp cx, word [eax]
mov ecx, dword [esp + 0x10]
jne 0x69f78e
lea ecx, [esp + 0x2c]
push ecx
push dword [eax + 8]
call dword [0x5f3fa7ec]
test eax, eax
js 0x69f786
push dword [esp + 0x2c]
call dword [0x5f3fa078]
test eax, eax
je 0x69f779
mov eax, dword [esp + 0x34]
test eax, eax
jne 0x69f5c2
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 0x69f9ee
mov eax, dword [esp + 0x34]
jmp 0x69f5c4
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 0x69f755
mov eax, dword [esp + 0x30]
cmp dword [eax], 5
jne 0x69f755
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 0x69f689
cmp dword [eax], ecx
je 0x69f689
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x69f689
call fcn.0069ed37
mov ecx, eax
mov dword [esp + 0x1c], ecx
test ecx, ecx
jne 0x69f653
mov ecx, dword [esp + 0x2c]
call fcn.0069ed87
mov ecx, eax
mov dword [esp + 0x48], ecx
test ecx, ecx
je 0x69f666
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
mov eax, dword [eax + 4]
mov esi, dword [eax + 4]
jmp 0x69f658
mov esi, 0x5f393274
mov dword [esp + 0x14], esi
test ecx, ecx
jne 0x69f66c
cmp dword [esp + 0x48], ecx
jne 0x69f66c
xor eax, eax
mov edx, eax
jmp 0x69f689
mov ecx, esi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, word [esp + 0x50]
jne 0x69f671
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 0x69f6e2
mov ecx, eax
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, word [esp + 0x50]
jne 0x69f69b
sub ecx, edx
sar ecx, 1
lea eax, [ecx*2 + 2]
cmp eax, edi
jge 0x69f6ed
push 2
push edi
push dword [esp + 0x18]
call dword [0x5f3fa124]
test eax, eax
je 0x69f6ce
mov dword [esp + 0x10], eax
jmp 0x69f6f1
push dword [esp + 0x10]
call dword [0x5f3fa1f4]
xor ecx, ecx
mov eax, ecx
mov dword [esp + 0x10], eax
jmp 0x69f6f3
push edi
push 0x40
call dword [0x5f3fa1b8]
jmp 0x69f6c8
mov eax, dword [esp + 0x10]
xor ecx, ecx
test eax, eax
je 0x69f9fd
push edi
push ecx
push eax
call fcn.006c5ab4
add esp, 0xc
cmp dword [esp + 0x1c], ebx
je 0x69f712
cmp dword [esp + 0x48], ebx
jne 0x69f73c
test esi, esi
je 0x69f73c
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 0x69f764
push eax
call dword [0x5f3fa070]
cmp dword [esp + 0x20], 0
je 0x69f775
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 0x69f7d6
cmp word [edi], ax
je 0x69f7d6
test esi, esi
jne 0x69f7d6
push edi
call dword [0x5f3fa1b4]
test eax, eax
je 0x69f7d1
cmp word [edi + eax*2], 0x2f
jne 0x69f7c3
test ebx, ebx
jne 0x69f7ca
mov ebx, eax
mov dword [esp + 0x14], ebx
sub eax, 1
jne 0x69f7b2
jmp 0x69f7d1
inc eax
sub ebx, eax
mov dword [esp + 0x14], ebx
lea edi, [edi + eax*2]
jmp 0x69f7f6
mov dword [esp + 0x3c], eax
test esi, esi
je 0x69f7e2
mov edi, ecx
jmp 0x69f7f6
mov edi, dword [edx - 0x10]
test edi, edi
je 0x69f9bd
cmp word [edi], ax
je 0x69f9bd
push edi
call dword [0x5f3fa1b4]
test eax, eax
je 0x69f9b9
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 0x69fa28
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 0x69f976
test ebx, ebx
je 0x69f850
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 0x69f86b
cmp cx, word [esp + 0x54]
jne 0x69f86e
mov edx, dword [eax + 8]
cmp cx, word [esp + 0x40]
je 0x69f8eb
cmp cx, word [esp + 0x54]
je 0x69f8eb
test cx, cx
jne 0x69f976
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 0x69f976
push 0x5f3932fc
push ebx
call dword [0x5f3faa9c]
pop ecx
pop ecx
test eax, eax
je 0x69f976
push 0x5f393310
push ebx
call dword [0x5f3faa9c]
pop ecx
pop ecx
test eax, eax
je 0x69f976
push 0x5f393350
push ebx
call dword [0x5f3faa9c]
pop ecx
pop ecx
test eax, eax
je 0x69f976
mov eax, dword [esp + 0x14]
inc eax
jmp 0x69f8fe
mov ecx, 0x2000
test dl, 1
je 0x69f913
test word [eax + 0x10], cx
je 0x69f913
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 0x69f976
test dl, 4
je 0x69f976
test word [eax + 0x10], cx
je 0x69f976
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 0x69f976
push dword [esp + 0x14]
call dword [0x5f3fa078]
test eax, eax
je 0x69f967
mov ecx, dword [esp + 0x14]
call fcn.0069ee33
test eax, eax
jne 0x69f967
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 0x69f98f
push esi
push dword [edi]
call dword [0x5f3fa1e4]
test eax, eax
je 0x69f9e1
mov edi, dword [edi + 4]
test edi, edi
jne 0x69f97f
test esi, esi
je 0x69f9b9
push 8
push 0x40
call dword [0x5f3fa1b8]
mov ecx, eax
test ecx, ecx
je 0x69fa2e
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 0x69fa37
mov ecx, dword [esp + 0x10]
xor ebx, ebx
inc ebx
jmp 0x69f52d
push esi
call dword [0x5f3fa1f4]
xor edi, edi
mov esi, edi
jmp 0x69f993
mov eax, dword [esp + 0x28]
push dword [eax + 8]
call dword [0x5f3fa7e8]
jmp 0x69fa3a
mov eax, dword [esp + 0x30]
test eax, eax
je 0x69fa0c
push eax
call dword [0x5f3fa070]
mov eax, dword [esp + 0x20]
test eax, eax
je 0x69fa1b
push eax
call dword [0x5f3fa070]
mov eax, dword [esp + 0x28]
push dword [eax + 8]
call dword [0x5f3fa7e8]
xor eax, eax
mov edi, eax
jmp 0x69fa3a
push esi
call dword [0x5f3fa1f4]
jmp 0x69fa3a
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 0x69fa74
push dword [esp + 0x34]
call dword [0x5f3fa074]
mov eax, dword [esp + 0x10]
test eax, eax
je 0x69fa83
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 0x69facd
jmp 0x69fac1
cmp dword [esi], 0
je 0x69fab4
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 0x69faa7
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.006c504c
mov esp, ebp
pop ebp
ret 8