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

Disassembly:
push ebp
push edi
push esi
push ebx
mov ebx, 0xffffffff
sub esp, 0xcc
mov dword [esp + 0x28], eax
mov dword [esp + 0x38], ecx
mov ecx, eax
mov eax, dword [eax + 8]
mov dword [esp + 0x34], edx
mov edx, dword [ecx]
mov dword [esp + 0x18], eax
movzx eax, byte [eax + 0x10]
mov dword [esp + 0x3c], edx
mov edx, dword [edx + 4]
lea eax, [eax + eax*8]
mov ecx, dword [ecx + 4]
mov word [esp + 0x42], bx
lea eax, [edx + eax*8 + 8]
mov edx, dword [eax + 0x10]
mov dword [esp + 0x14], eax
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x30], edx
movzx edx, byte [eax + 0x28]
test dl, 2
je 0x6f99c1
mov ebp, dword [eax + 0x44]
mov ecx, dword [esp + 0x28]
test ebp, ebp
setne byte [esp + 8]
xor eax, eax
mov edi, dword [ecx + 0xc]
test edi, edi
je 0x6f9a88
cmp byte [esp + 8], 0
je 0x6f967e
mov ecx, dword [ebp + 0x24]
mov dword [esp + 0x24], 1
lea esi, [esi]
test ecx, ecx
je 0x6f9487
mov eax, dword [esp + 0x14]
sub esp, 0xc
movzx edx, byte [eax + 0x24]
mov eax, dword [eax + 0x2c]
push ecx
mov ecx, dword [esp + 0x3c]
call fcn.006f1050
add esp, 0x10
test eax, eax
je 0x6f9790
movzx eax, byte [ebp + 0x39]
and eax, 2
mov byte [esp + 0x1c], al
jne 0x6f9790
mov eax, dword [ebp + 8]
xor ecx, ecx
mov edi, dword [esp + 0x38]
xor ebx, ebx
movzx edx, word [eax]
mov eax, dword [esp + 0x18]
mov word [eax + 0x1c], cx
mov ecx, dword [esp + 0x34]
mov dword [eax + 0x18], 0
mov dword [eax + 0x30], 0
mov byte [eax + 0x11], 0
mov word [eax + 0x12], bx
mov dword [eax], ecx
mov dword [eax + 4], edi
mov word [eax + 0x16], dx
mov dword [eax + 0x20], ebp
movzx eax, byte [ebp + 0x38]
mov word [esp + 0x22], dx
test al, 4
jne 0x6f97e8
mov edx, dword [esp + 0x28]
mov edx, dword [edx]
mov ecx, dword [edx + 8]
mov dword [esp + 0xc], ecx
test ecx, ecx
je 0x6f97e8
mov edi, dword [ecx]
test edi, edi
jle 0x6f9575
mov eax, dword [esp + 0x14]
mov dword [esp + 8], 0
mov eax, dword [eax + 0x2c]
mov dword [esp + 0x10], eax
lea esi, [esi]
nop
mov eax, dword [esp + 8]
mov edx, dword [esp + 0xc]
lea eax, [eax + eax*4]
mov ebx, dword [edx + eax*4 + 8]
lea esi, [esi]
nop
test ebx, ebx
je 0x6f9560
mov eax, dword [ebx + 4]
test eax, 0x82000
je 0x6f96a0
test eax, 0x80000
je 0x6f9690
mov eax, dword [ebx + 0x14]
mov ebx, dword [eax + 8]
test ebx, ebx
jne 0x6f9534
lea esi, [esi]
nop
mov ecx, dword [esp + 0xc]
add dword [esp + 8], 1
mov eax, dword [esp + 8]
cmp eax, dword [ecx]
jl 0x6f9518
movzx eax, byte [ebp + 0x38]
mov edx, eax
and edx, 3
cmp dl, 3
je 0x6f9cc3
xor esi, esi
lea esi, [esi]
test al, 0x20
je 0x6f9841
mov eax, dword [esp + 0x18]
mov dword [esp + 0x48], 0
xor ecx, ecx
xor ebx, ebx
mov dword [esp + 0x4c], 0
mov dword [eax + 0x2c], 0x240
test esi, esi
jne 0x6f9833
mov eax, dword [esp + 0x30]
test byte [eax + 0x1c], 0x80
jne 0x6f95d0
mov esi, dword [ebp + 0x24]
test esi, esi
je 0x6f99ff
lea esi, [esi]
mov edi, dword [esp + 0x18]
movzx eax, byte [esp + 0x1c]
mov byte [edi + 0x11], al
movsx edx, word [ebp + 0x30]
mov eax, edx
shl eax, 4
sub eax, edx
mov edx, dword [esp + 0x30]
movsx esi, word [edx + 0x28]
cdq
idiv esi
movzx edx, word [esp + 0x22]
or ebx, ecx
lea eax, [edx + eax + 1]
mov word [edi + 0x14], ax
jne 0x6f98c8
mov esi, dword [esp + 0x18]
movsx ecx, word [esp + 0x22]
mov eax, dword [esp + 0x2c]
mov edx, esi
mov edi, ecx
call fcn.006b6400
mov eax, dword [esp + 0x14]
test byte [eax + 0x24], 0x10
je 0x6f9808
mov edx, dword [ebp + 0x28]
test edx, edx
je 0x6f9808
mov word [esi + 0x16], di
mov edi, dword [esp + 0x28]
sub esp, 0xc
mov ecx, ebp
mov byte [edi + 0x10], 0
mov eax, edi
push 0
mov edx, dword [esp + 0x24]
call fcn.006edba0
add esp, 0x10
cmp byte [edi + 0x10], 1
jne 0x6f9670
mov edx, dword [esp + 0x30]
or dword [edx + 0x1c], 0x100
lea esi, [esi]
nop
mov ecx, dword [esp + 0x14]
test byte [ecx + 0x28], 2
je 0x6f9770
add esp, 0xcc
pop ebx
pop esi
pop edi
pop ebp
ret
mov ebx, dword [ebx + 0xc]
jmp 0x6f9530
cmp byte [ebx], 0xa7
je 0x6f97a0
mov edi, dword [ebp + 0x28]
test edi, edi
je 0x6f9560
cmp word [ebp + 0x32], 0
je 0x6f9560
add edi, 8
xor esi, esi
jmp 0x6f96e2
movzx eax, word [ebp + 0x32]
add esi, 1
add edi, 0x14
cmp esi, eax
jge 0x6f9560
mov eax, dword [ebp + 4]
cmp word [eax + esi*2], 0xfffe
jne 0x6f96d0
mov ecx, dword [esp + 0x10]
mov edx, dword [edi]
mov eax, ebx
call fcn.006ed4b0
test eax, eax
jne 0x6f96d0
movzx eax, byte [ebp + 0x38]
mov esi, 1
mov edx, eax
and edx, 3
cmp dl, 3
jne 0x6f9588
mov eax, dword [esp + 0x18]
mov dword [eax + 0x2c], 0x100
movzx eax, byte [esp + 0x24]
mov byte [esp + 0x1c], al
mov edi, dword [esp + 0x18]
movsx ecx, word [esp + 0x22]
movzx eax, byte [esp + 0x1c]
mov edx, edi
mov esi, ecx
mov byte [edi + 0x11], al
lea eax, [ecx + 0x10]
mov word [edi + 0x14], ax
mov eax, dword [esp + 0x2c]
call fcn.006b6400
mov eax, dword [esp + 0x28]
mov edx, edi
call fcn.006cf410
mov word [edi + 0x16], si
test eax, eax
je 0x6f963a
jmp 0x6f967e
add dword [esp + 0x24], 1
mov ebp, dword [ebp + 0x14]
test eax, eax
jne 0x6f967e
test ebp, ebp
je 0x6f967e
mov ecx, dword [ebp + 0x24]
jmp 0x6f9460
xor eax, eax
jmp 0x6f9670
mov eax, dword [esp + 0x10]
cmp eax, dword [ebx + 0x1c]
jne 0x6f96a9
movzx edx, word [ebx + 0x20]
test dx, dx
js 0x6f96fd
movzx ecx, word [ebp + 0x32]
test cx, cx
je 0x6f9560
mov eax, dword [ebp + 4]
lea ecx, [eax + ecx*2]
jmp 0x6f97db
add eax, 2
cmp ecx, eax
je 0x6f9560
cmp dx, word [eax]
jne 0x6f97d0
jmp 0x6f96fd
mov edx, eax
xor esi, esi
and edx, 3
cmp dl, 3
jne 0x6f9588
mov eax, dword [esp + 0x18]
mov dword [eax + 0x2c], 0x100
jmp 0x6f9728
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x28]
mov edx, edi
call fcn.006cf410
movzx ecx, word [esp + 0x22]
mov word [edi + 0x16], cx
test eax, eax
je 0x6f963a
add esp, 0xcc
pop ebx
pop esi
pop edi
pop ebp
ret
movzx eax, byte [esp + 0x24]
mov byte [esp + 0x1c], al
jmp 0x6f95d0
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x38]
mov ebx, dword [eax + 0x3c]
mov eax, dword [ebp + 0x24]
and ecx, dword [ebp + 0x40]
and ebx, dword [ebp + 0x44]
mov dword [esp + 0x48], ecx
mov dword [esp + 0x4c], ebx
test eax, eax
je 0x6f9886
sub esp, 4
mov ecx, eax
push 0
push 0
lea edx, [esp + 0x54]
push edx
mov eax, dword [esp + 0x4c]
mov edx, ebp
mov eax, dword [eax]
call fcn.006e87c0
mov ecx, dword [esp + 0x58]
mov ebx, dword [esp + 0x5c]
add esp, 0x10
mov eax, dword [esp + 0x18]
mov dword [eax + 0x2c], 0x200
lea eax, [ebx - 0x80000000]
or eax, ecx
je 0x6f998c
movzx eax, byte [ebp + 0x39]
and eax, 0x18
cmp al, 0x10
jne 0x6f99b2
mov eax, ecx
or eax, ebx
jne 0x6f998c
mov eax, dword [esp + 0x18]
mov dword [eax + 0x2c], 0x240
jmp 0x6f95af
mov ecx, edx
mov edx, dword [esp + 0x3c]
lea edi, [ecx + 0x10]
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx + 0x2c]
mov dword [esp + 0xc], ecx
mov ecx, dword [edx + 0x5c]
test ecx, ecx
jle 0x6f996c
mov dword [esp + 8], ebp
xor esi, esi
mov ebp, edx
nop
lea ebx, [esi + esi*2]
xor eax, eax
shl ebx, 4
add ebx, dword [ebp + 0x68]
mov edx, dword [ebx]
mov dword [esp + eax + 0x5c], 0
add eax, 4
cmp eax, 0x18
jb 0x6f98fd
mov eax, dword [esp + 0xc]
lea ecx, [esp + 0x54]
mov dword [esp + 0x60], 0x6b8680
mov dword [esp + 0x74], ecx
mov dword [esp + 0x58], eax
mov eax, dword [esp + 8]
mov dword [esp + 0x54], eax
test edx, edx
je 0x6f9942
lea eax, [esp + 0x5c]
call fcn.006ca6c0
cmp word [esp + 0x70], 0
jne 0x6f9960
movzx eax, word [ebx + 8]
test ax, ax
jle 0x6f9988
lea eax, [edi - 1]
sub edi, 0x14
test byte [ebx + 0xc], 0x82
cmove edi, eax
add esi, 1
cmp dword [ebp + 0x5c], esi
jg 0x6f98f0
mov eax, dword [esp + 0x18]
mov ebp, dword [esp + 8]
movzx eax, word [eax + 0x14]
movsx edx, di
cwde
call fcn.006b80d0
mov edx, dword [esp + 0x18]
mov word [edx + 0x14], ax
jmp 0x6f9607
add edi, eax
jmp 0x6f9958
mov eax, dword [esp + 0x14]
mov edx, ebp
mov ecx, dword [eax + 0x2c]
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + 0x10]
call fcn.006cb240
test eax, eax
jne 0x6f99df
mov ecx, dword [esp + 0x48]
mov ebx, dword [esp + 0x4c]
jmp 0x6f95af
mov eax, ebx
or eax, ecx
jne 0x6f95af
jmp 0x6f98b8
mov ecx, dword [esp + 0x30]
mov eax, dword [ecx + 0x1c]
mov dword [esp + 8], eax
and eax, 0x80
je 0x6f9c08
mov ebp, dword [ecx + 8]
jmp 0x6f942f
mov edx, dword [esp + 0x18]
mov dword [esp + 0x48], 0
xor ecx, ecx
xor ebx, ebx
mov dword [esp + 0x4c], 0
or dword [edx + 0x2c], eax
jmp 0x6f95af
mov eax, dword [esp + 0x14]
test byte [eax + 0x28], 2
jne 0x6f95d0
or ebx, ecx
jne 0x6f963a
test byte [ebp + 0x38], 4
jne 0x6f963a
mov eax, dword [esp + 0x30]
movsx edx, word [ebp + 0x30]
movsx ecx, word [eax + 0x28]
cmp dx, cx
jge 0x6f963a
mov eax, dword [esp + 0x3c]
test byte [eax + 0x28], 4
jne 0x6f963a
cmp byte [0x7d2c07], 0
je 0x6f963a
mov eax, dword [eax]
mov eax, dword [eax]
test byte [eax + 0x50], 0x20
jne 0x6f963a
mov eax, edx
mov edi, dword [esp + 0x18]
shl eax, 4
sub eax, edx
mov byte [edi + 0x11], 0
cdq
idiv ecx
movzx edx, word [esp + 0x22]
lea eax, [edx + eax + 1]
mov word [edi + 0x14], ax
jmp 0x6f9607
mov ecx, dword [esp + 0x30]
movzx ecx, word [ecx + 0x26]
mov word [esp + 0xc], cx
mov ecx, dword [esp + 0x3c]
test word [ecx + 0x28], 0x1020
jne 0x6f9447
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx]
mov ecx, dword [ecx]
test byte [ecx + 0x21], 0x80
je 0x6f9447
xor eax, eax
test dl, 3
jne 0x6f9447
mov ecx, dword [esp + 0x30]
test byte [ecx + 0x1c], 0x80
jne 0x6f9447
and edx, 0x48
jne 0x6f9447
mov edx, dword [esp + 0x14]
test byte [edx + 0x24], 0x10
jne 0x6f9447
mov eax, dword [esp + 0x2c]
xor edi, edi
mov ebx, dword [eax + 0x18]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*2]
shl eax, 4
add eax, ebx
cmp word [esp + 0xc], 0xa
mov dword [esp + 0x10], eax
jg 0x6f9cdf
cmp ebx, dword [esp + 0x10]
jae 0x6f9cd8
movzx esi, word [esp + 0xc]
mov dword [esp + 0x1c], ebp
mov ebp, ebx
mov ebx, dword [esp + 0x18]
add esi, edi
lea eax, [esi - 0x19]
mov word [esp + 0xc], ax
jmp 0x6f9beb
push 0
mov eax, ebp
push 0
mov edx, dword [esp + 0x1c]
call fcn.006c1760
pop edx
pop ecx
test eax, eax
je 0x6f9bff
mov eax, 1
mov dword [ebx + 0x20], 0
mov word [ebx + 0x18], ax
mov eax, dword [ebx + 0x38]
mov dword [ebx + 0x30], 1
mov dword [eax], ebp
mov eax, dword [esp + 0x30]
cmp byte [eax + 0x2b], 2
je 0x6f9d2d
test byte [eax + 0x1d], 0x40
jne 0x6f9d2d
lea eax, [esi + 0x1c]
test ax, ax
mov edx, 0
cmovs eax, edx
mov edx, 0x2b
mov word [ebx + 0x12], ax
mov eax, 0x2b
mov word [ebx + 0x16], ax
movsx eax, di
call fcn.006b80d0
mov edx, dword [esp + 0x34]
or edx, dword [ebp + 0x20]
mov dword [ebx + 0x2c], 0x4000
mov word [ebx + 0x14], ax
mov eax, dword [esp + 0x38]
or eax, dword [ebp + 0x24]
mov dword [ebx], edx
mov edx, ebx
mov dword [ebx + 4], eax
mov eax, dword [esp + 0x28]
call fcn.006cf410
test eax, eax
sete dl
add ebp, 0x30
cmp dword [esp + 0x10], ebp
jbe 0x6f9d20
test dl, dl
je 0x6f9d20
mov eax, dword [ebp + 0x20]
mov edx, dword [ebp + 0x24]
and eax, dword [ebx + 8]
and edx, dword [ebx + 0xc]
or edx, eax
je 0x6f9b33
mov edx, 1
xor eax, eax
jmp 0x6f9bd6
lea ebp, [esp + 0x78]
mov ecx, 0x12
mov edx, 1
mov edi, ebp
rep stosd dword es:[edi], eax
lea eax, [esp + 0x42]
mov byte [esp + 0xae], 5
xor ecx, ecx
mov dword [esp + 0x7c], eax
lea eax, [esp + 0x44]
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0xa8], 0x10003
mov dword [esp + 0x84], eax
mov byte [esp + 0xb0], 3
movzx eax, word [eax + 0x26]
mov word [esp + 0xac], dx
mov word [esp + 0xc], ax
mov word [esp + 0x44], ax
mov eax, dword [esp + 0x14]
mov word [esp + 0x46], cx
movzx edx, byte [eax + 0x28]
test dl, 1
jne 0x6f9c8a
mov eax, dword [eax + 0x10]
mov eax, dword [eax + 8]
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x28]
xor ecx, ecx
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x6f9455
mov eax, dword [esp + 0x3c]
test word [eax + 0x28], 0x1020
jne 0x6f9452
mov eax, dword [eax]
mov byte [esp + 8], 1
mov eax, dword [eax]
test byte [eax + 0x21], 0x80
jne 0x6f9ab7
jmp 0x6f9452
mov eax, dword [esp + 0x18]
mov byte [esp + 0x1c], 0
mov dword [eax + 0x2c], 0x100
jmp 0x6f9728
xor eax, eax
jmp 0x6f9447
movsx edi, word [esp + 0xc]
mov esi, edi
sar edi, 0x1f
je 0x6f9d37
bsr eax, edi
xor eax, 0x1f
mov edx, 0x3c
sub edx, eax
mov eax, esi
mov ecx, edx
mov edx, edi
shrd eax, edi, cl
shr edx, cl
test cl, 0x20
cmovne eax, edx
lea edx, [ecx + ecx*4]
and eax, 7
movzx edi, word [eax + eax + 0xa3ab84]
lea edi, [edi + edx*2 - 3]
jmp 0x6f9b0b
and byte [esp + 8], dl
mov ebp, dword [esp + 0x1c]
jmp 0x6f9447
movzx eax, word [esp + 0xc]
jmp 0x6f9b83
bsr eax, esi
xor eax, 0x1f
add eax, 0x20
jmp 0x6f9cf1