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

Disassembly:
sub esp, 0x90
mov edx, dword [esp + 0x94]
push ebx
push ebp
push esi
mov esi, dword [edx]
xor ebx, ebx
push edi
mov edi, dword [edx + 0xc]
mov edx, dword [edx + 4]
mov dword [esp + 0x3c], 0xffffffff
mov dword [esp + 0x20], 1
movzx eax, byte [edi + 0x10]
mov dword [esp + 0x38], edi
mov dword [esp + 0x2c], esi
mov dword [esp + 0x28], edx
lea ecx, [eax + eax*4]
mov eax, dword [esi + 4]
shl ecx, 4
add eax, 8
add eax, ecx
mov dword [esp + 0x10], eax
mov ebp, dword [eax + 0x4c]
mov ecx, dword [eax + 0x10]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], ebp
test ebp, ebp
jne 0x6869ce
test byte [ecx + 0x24], 0x20
je 0x68695a
mov ebp, dword [ecx + 8]
jmp 0x6869ca
push 0x3c
lea eax, [esp + 0x68]
push 0
push eax
call sub.MSVCRT.dll_memset
mov ecx, dword [esp + 0x24]
lea eax, [esp + 0x48]
mov dword [esp + 0x74], eax
add esp, 0xc
lea eax, [esp + 0x34]
mov dword [esp + 0x96], 0x10001
mov dword [esp + 0x6c], eax
mov byte [esp + 0x9a], 5
mov dword [esp + 0x70], ecx
movzx eax, word [ecx + 0x2e]
mov word [esp + 0x94], ax
movzx eax, word [ecx + 0x2c]
mov word [esp + 0x34], ax
xor eax, eax
mov word [esp + 0x36], ax
mov eax, dword [esp + 0x10]
test byte [eax + 0x28], 1
jne 0x6869c6
mov eax, dword [eax + 0x10]
mov eax, dword [eax + 8]
mov dword [esp + 0x78], eax
lea ebp, [esp + 0x64]
mov dword [esp + 0x1c], ebp
movzx eax, word [ecx + 0x2c]
mov dword [esp + 0x24], eax
cmp ax, 0xa
jg 0x6869e0
xor eax, eax
jmp 0x6869f7
cwde
cdq
push edx
push eax
call fcn.0065ad30
mov ecx, dword [esp + 0x20]
add esp, 8
sub ax, 0x21
movzx eax, ax
mov edx, dword [esp + 0x10]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0xa4]
cmp dword [eax + 0x10], ebx
jne 0x686b51
test byte [esi + 0x2c], 0x20
jne 0x686b51
mov eax, dword [esi]
mov eax, dword [eax]
test dword [eax + 0x1c], 0x8000
je 0x686b51
cmp dword [edx + 0x4c], ebx
jne 0x686b51
mov eax, dword [edx + 0x28]
test al, 1
jne 0x686b51
test byte [ecx + 0x24], 0x20
jne 0x686b51
test al, 0x28
jne 0x686b51
mov ecx, dword [esp + 0x28]
mov eax, dword [ecx + 0xc]
mov esi, dword [ecx + 0x14]
lea eax, [eax + eax*2]
shl eax, 4
add eax, esi
mov dword [esp + 0x30], eax
cmp esi, eax
jae 0x686b49
mov ecx, dword [edi + 8]
mov eax, dword [edi + 0xc]
and ecx, dword [esi + 0x20]
and eax, dword [esi + 0x24]
or ecx, eax
jne 0x686b2d
push ecx
push ecx
push edx
push esi
call fcn.0067e2f0
add esp, 0x10
test eax, eax
je 0x686b29
mov eax, dword [edi + 0x30]
mov ecx, 1
mov edx, dword [esp + 0x18]
mov word [edi + 0x18], cx
mov dword [edi + 0x28], ecx
mov ecx, dword [esp + 0x14]
mov dword [edi + 0x20], 0
mov dword [eax], esi
mov eax, dword [esp + 0x24]
add eax, 4
add eax, ecx
mov word [edi + 0x12], ax
cmp dword [edx + 0xc], 0
jne 0x686ad6
test byte [edx + 0x24], 2
jne 0x686ad6
add eax, 0x18
mov word [edi + 0x12], ax
cmp word [edi + 0x12], 0
jge 0x686ae3
xor eax, eax
mov word [edi + 0x12], ax
mov eax, 0x2b
push eax
push ecx
mov word [edi + 0x16], ax
call fcn.0065add0
mov ecx, dword [esp + 0xb0]
mov word [edi + 0x14], ax
mov eax, dword [esp + 0xb4]
mov dword [edi + 0x24], 0x4000
or ecx, dword [esi + 0x20]
or eax, dword [esi + 0x24]
push edi
push dword [esp + 0xb0]
mov dword [edi], ecx
mov dword [edi + 4], eax
call fcn.00688500
add esp, 0x10
mov ebx, eax
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x30]
add esi, 0x30
test ebx, ebx
je 0x686a66
pop edi
pop esi
pop ebp
mov eax, ebx
pop ebx
add esp, 0x90
ret
test ebx, ebx
jne 0x686e8c
test ebp, ebp
je 0x686e8c
mov eax, dword [ebp + 0x24]
test eax, eax
je 0x686b78
push eax
push dword [esp + 0x2c]
push dword [edx + 0x30]
call fcn.0068a600
add esp, 0xc
test eax, eax
je 0x686e75
mov eax, dword [ebp + 8]
movzx esi, word [eax]
xor eax, eax
mov dword [edi + 0x18], eax
mov word [edi + 0x1c], ax
mov dword [edi + 0x28], eax
mov byte [edi + 0x11], al
mov word [edi + 0x12], ax
mov eax, dword [esp + 0xa8]
mov dword [edi], eax
mov eax, dword [esp + 0xac]
mov dword [edi + 4], eax
mov eax, dword [esp + 0x10]
mov word [edi + 0x16], si
mov dword [edi + 0x20], ebp
mov dword [esp + 0x24], esi
push dword [eax + 0x30]
push ebp
push dword [esp + 0xac]
call fcn.0062eda0
add esp, 0xc
mov ebx, eax
cmp dword [ebp + 0x2c], 0
jg 0x686c08
neg ebx
mov dword [edi + 0x24], 0x100
push esi
sbb bl, bl
lea eax, [esi + 0x10]
and bl, byte [esp + 0x24]
push edi
push dword [esp + 0x30]
mov byte [edi + 0x11], bl
mov word [edi + 0x14], ax
call fcn.00688650
push edi
push dword [esp + 0xb4]
call fcn.00688500
mov word [edi + 0x16], si
jmp 0x686e2a
test byte [ebp + 0x38], 0x20
je 0x686c1f
xor esi, esi
mov dword [edi + 0x24], 0x240
xor edx, edx
mov dword [esp + 0x14], edx
jmp 0x686c4f
push ebp
call fcn.006128e0
mov esi, eax
not edx
mov eax, dword [esp + 0x14]
not esi
add esp, 4
and esi, dword [eax + 0x40]
and edx, dword [eax + 0x44]
mov ecx, esi
or ecx, edx
mov dword [esp + 0x14], edx
mov eax, 0x240
je 0x686c4c
mov eax, 0x200
mov dword [edi + 0x24], eax
test ebx, ebx
jne 0x686cac
mov ecx, dword [esp + 0x18]
test byte [ecx + 0x24], 0x20
jne 0x686cac
cmp dword [ebp + 0x24], ebx
jne 0x686cac
mov eax, esi
or eax, edx
jne 0x686e31
test byte [ebp + 0x38], 4
jne 0x686e31
mov ax, word [ebp + 0x30]
cmp ax, word [ecx + 0x2e]
jge 0x686e31
mov eax, dword [esp + 0x2c]
test byte [eax + 0x2c], 4
jne 0x686e31
cmp dword [0xb26610], ebx
je 0x686e31
mov eax, dword [eax]
mov eax, dword [eax]
test byte [eax + 0x44], 0x20
jne 0x686e31
neg ebx
sbb bl, bl
and bl, byte [esp + 0x20]
mov byte [edi + 0x11], bl
movsx ecx, word [ebp + 0x30]
mov eax, ecx
mov ebx, dword [esp + 0x24]
shl eax, 4
sub eax, ecx
mov ecx, dword [esp + 0x18]
cdq
movsx ecx, word [ecx + 0x2e]
idiv ecx
inc eax
add eax, ebx
or esi, dword [esp + 0x14]
mov word [edi + 0x14], ax
je 0x686e0e
lea eax, [ebx + 0x10]
xor ebp, ebp
movzx esi, ax
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x30]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x2c]
cmp dword [eax + 0x5c], ebp
jle 0x686da7
mov edi, dword [esp + 0x1c]
xor edx, edx
mov dword [esp + 0x14], edx
lea esp, [esp]
mov ebx, dword [eax + 0x64]
xor eax, eax
add ebx, edx
mov dword [esp + 0x58], eax
mov edx, dword [esp + 0x30]
mov dword [esp + 0x60], edx
lea edx, [esp + 0x5c]
mov dword [esp + 0x44], eax
mov ecx, dword [ebx]
mov dword [esp + 0x58], edx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x40], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x5c], edi
mov dword [esp + 0x44], 0x6185e0
test ecx, ecx
je 0x686d6f
push ecx
lea eax, [esp + 0x44]
push eax
call fcn.00685c10
mov eax, dword [esp + 0x5c]
add esp, 8
mov edx, dword [esp + 0x14]
test al, al
jne 0x686d9f
movzx eax, word [ebx + 8]
test ax, ax
jg 0x686d80
add esi, eax
jmp 0x686d8a
dec esi
test byte [ebx + 0xc], 0x82
je 0x686d8a
sub esi, 0x13
mov eax, dword [esp + 0x2c]
inc ebp
add edx, 0x30
mov dword [esp + 0x14], edx
cmp ebp, dword [eax + 0x5c]
jl 0x686d10
mov edi, dword [esp + 0x38]
mov ebx, dword [esp + 0x24]
movzx ecx, word [edi + 0x14]
movsx edx, cx
cmp cx, si
jl 0x686ddb
movsx esi, si
lea eax, [esi + 0x31]
cmp edx, eax
jle 0x686dc1
mov eax, ecx
jmp 0x686e06
lea eax, [esi + 0x1f]
cmp edx, eax
jle 0x686dcd
lea eax, [ecx + 1]
jmp 0x686e03
sub edx, esi
movzx eax, byte [edx + str._n_n_t_t_b_b_a_a_a]
add ax, cx
jmp 0x686e03
movsx ecx, si
lea eax, [edx + 0x31]
cmp ecx, eax
jle 0x686dea
movzx eax, si
jmp 0x686e06
lea eax, [edx + 0x1f]
cmp ecx, eax
jle 0x686df7
inc esi
movzx eax, si
jmp 0x686e06
sub ecx, edx
movzx eax, byte [ecx + str._n_n_t_t_b_b_a_a_a]
add ax, si
movzx eax, ax
mov ebp, dword [esp + 0x1c]
mov word [edi + 0x14], ax
push ebx
push edi
push dword [esp + 0x30]
call fcn.00688650
push edi
push dword [esp + 0xb4]
call fcn.00688500
mov word [edi + 0x16], bx
add esp, 0x14
test eax, eax
jne 0x686e8e
mov eax, dword [esp + 0xa4]
push 0
push ebp
push dword [esp + 0x18]
mov dword [eax + 0x14], 0
push eax
call fcn.00686ea0
mov ebx, eax
add esp, 0x10
mov eax, dword [esp + 0xa4]
cmp dword [eax + 0x14], 1
jne 0x686e69
mov eax, dword [esp + 0x18]
or dword [eax + 0x24], 0x100
mov edx, dword [esp + 0x10]
cmp dword [edx + 0x4c], 0
jne 0x686e8c
jmp 0x686e79
mov edx, dword [esp + 0x10]
inc dword [esp + 0x20]
mov ebp, dword [ebp + 0x14]
mov dword [esp + 0x1c], ebp
test ebx, ebx
je 0x686b51
mov eax, ebx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x90
ret