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

Disassembly:
sub esp, 0x18
push ebx
push ebp
mov ebp, dword [esp + 0x28]
push esi
push edi
xor edi, edi
mov byte [esp + 0x12], 0
mov eax, dword [ebp + 0x548]
xor esi, esi
mov dword [esp + 0x18], edi
test byte [eax + 0x40], 3
je 0x678f98fa
cmp byte [ebp + 0x515], 0
je 0x678f98d6
cmp byte [ebp + 0x508], 0
jne 0x678f98fa
mov ebx, dword [esp + 0x2c]
push dword [ebx + 0x78]
call fcn.678f2570
add esp, 4
test al, al
je 0x678f98fe
cmp dword [ebx + 0x844], 3
mov eax, 2
cmovge esi, eax
jmp 0x678f98fe
mov ebx, dword [esp + 0x2c]
test esi, esi
setne al
test byte [ebx + 0xd70], 0x28
mov byte [esp + 0x30], al
je 0x678f9920
mov eax, dword [ebp + 0x548]
test byte [eax + 0x40], 3
je 0x678f9920
mov al, 1
jmp 0x678f9922
xor al, al
cmp byte [ebp + 0x511], 0
mov byte [esp + 0x13], al
je 0x678f994b
test byte [ebx + 0xd80], 0x28
je 0x678f994b
mov eax, dword [ebp + 0x548]
test byte [eax + 0x40], 3
je 0x678f994b
mov byte [esp + 0x11], 1
jmp 0x678f9951
xor al, al
mov byte [esp + 0x11], al
mov eax, dword [esp + 0x38]
mov byte [eax], 0
mov eax, dword [esp + 0x3c]
mov byte [eax], 0
lea eax, [esp + 0x20]
push eax
push dword [ebx + 0xcd0]
push ebp
call fcn.678f7a40
mov edi, eax
add esp, 0xc
mov dword [esp + 0x24], edi
test edi, edi
je 0x678fa175
cmp dword [edi], 2
mov eax, 0x67946288
mov ecx, 0x67946278
cmovne ecx, eax
push ecx
push edi
push dword [esp + 0x28]
push 0x67946294
push ebx
call fcn.678fe8f0
add esp, 0x14
test esi, esi
je 0x678f9a39
mov eax, dword [edi]
test eax, eax
jne 0x678f99f6
cmp byte [ebx + 0xb25], al
je 0x678f99e0
push 0x679462b8
push ebx
call fcn.678fe8f0
mov eax, dword [esp + 0x44]
push ebx
mov byte [eax], 1
call fcn.678f7f80
add esp, 0xc
xor al, al
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18
ret
push 0x679462e4
push ebx
call fcn.678fe8f0
add esp, 8
xor al, al
mov byte [esp + 0x30], al
mov eax, dword [edi]
cmp eax, 2
jne 0x678f9a1e
push dword [ebx + 0x78]
call fcn.678f2570
add esp, 4
test al, al
jne 0x678f9a1e
push 0x6794630c
push ebx
call fcn.678fe8f0
add esp, 8
xor al, al
mov byte [esp + 0x30], al
cmp dword [edi], 0xffffffff
jne 0x678f9a39
push 0x67946330
push ebx
call fcn.678fe8f0
add esp, 8
xor cl, cl
mov byte [esp + 0x30], cl
jmp 0x678f9a3d
mov cl, byte [esp + 0x30]
mov esi, dword [edi + 8]
test esi, esi
je 0x678fa175
mov edi, dword [esi]
xor eax, eax
mov esi, dword [esi + 8]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], esi
cmp byte [edi + 0x526], al
jne 0x678fa10f
cmp byte [edi + 0x508], al
jne 0x678fa10f
mov edx, dword [esp + 0x24]
cmp dword [edx], 2
jne 0x678f9a82
mov eax, dword [edi + 0x5dc]
mov dword [esp + 0x1c], eax
test cl, cl
jne 0x678f9ad6
test eax, eax
jne 0x678fa10f
cmp byte [edi + 0x2c4], al
jne 0x678f9aaf
push dword [edi + 0x2b0]
push 0x6794635c
push ebx
call fcn.678fe8f0
add esp, 0xc
jmp 0x678fa10b
cmp dword [edi + 0x420], 0xffffffff
jne 0x678f9ad6
push dword [edi + 0x2b0]
mov byte [esp + 0x16], 1
push 0x67946394
push ebx
call fcn.678fe8f0
add esp, 0xc
jmp 0x678fa10b
mov ecx, dword [ebp + 0x7e8]
mov eax, dword [edi + 0x7e8]
test ecx, ecx
je 0x678f9b2b
test eax, eax
je 0x678fa10b
nop
mov dl, byte [ecx]
cmp dl, byte [eax]
jne 0x678f9b10
test dl, dl
je 0x678f9b0c
mov dl, byte [ecx + 1]
cmp dl, byte [eax + 1]
jne 0x678f9b10
add ecx, 2
add eax, 2
test dl, dl
jne 0x678f9af0
xor eax, eax
jmp 0x678f9b15
sbb eax, eax
or eax, 1
test eax, eax
jne 0x678fa10b
mov al, byte [ebp + 0x7ec]
cmp al, byte [edi + 0x7ec]
jmp 0x678f9b2d
test eax, eax
jne 0x678fa10b
mov ecx, dword [edi + 0x548]
mov edx, dword [ebp + 0x548]
mov eax, dword [ecx + 0x44]
xor eax, dword [edx + 0x44]
test al, 1
je 0x678f9b6a
push dword [ecx + 0x40]
call fcn.678fc9c0
add esp, 4
cmp eax, dword [edx + 0x40]
jne 0x678fa10b
cmp byte [edi + 0x7ed], 0
je 0x678fa10b
mov al, byte [ebp + 0x50e]
cmp al, byte [edi + 0x50e]
jne 0x678fa10b
mov al, byte [ebp + 0x50f]
cmp al, byte [edi + 0x50f]
jne 0x678fa10b
test al, al
je 0x678f9c8e
mov eax, dword [ebp + 0x338]
cmp eax, dword [edi + 0x338]
jne 0x678fa10b
mov eax, dword [ebp + 0x334]
cmp eax, dword [edi + 0x334]
jne 0x678fa10b
push dword [edi + 0x32c]
push dword [ebp + 0x32c]
call fcn.67902c70
add esp, 8
test eax, eax
je 0x678fa10b
mov edx, dword [ebp + 0x33c]
xor ecx, ecx
mov esi, dword [edi + 0x33c]
test edx, edx
sete cl
xor eax, eax
test esi, esi
sete al
cmp ecx, eax
jne 0x678fa107
test edx, edx
je 0x678f9c2d
test esi, esi
je 0x678f9c2d
mov al, byte [edx]
cmp al, byte [esi]
jne 0x678f9c20
test al, al
je 0x678f9c1c
mov al, byte [edx + 1]
cmp al, byte [esi + 1]
jne 0x678f9c20
add edx, 2
add esi, 2
test al, al
jne 0x678f9c00
xor eax, eax
jmp 0x678f9c25
sbb eax, eax
or eax, 1
test eax, eax
jne 0x678fa107
mov edx, dword [ebp + 0x340]
xor ecx, ecx
mov esi, dword [edi + 0x340]
test edx, edx
sete cl
xor eax, eax
test esi, esi
sete al
cmp ecx, eax
jne 0x678fa107
test edx, edx
je 0x678f9c8a
test esi, esi
je 0x678f9c8a
mov al, byte [edx]
cmp al, byte [esi]
jne 0x678f9c77
test al, al
je 0x678f9c73
mov al, byte [edx + 1]
cmp al, byte [esi + 1]
jne 0x678f9c77
add edx, 2
add esi, 2
test al, al
jne 0x678f9c57
xor eax, eax
jmp 0x678f9c7c
sbb eax, eax
or eax, 1
mov esi, dword [esp + 0x14]
test eax, eax
jne 0x678fa10b
jmp 0x678f9c8e
mov esi, dword [esp + 0x14]
mov al, byte [ebp + 0x50b]
cmp al, byte [edi + 0x50b]
jne 0x678fa10b
mov al, byte [ebp + 0x50c]
cmp al, byte [edi + 0x50c]
jne 0x678fa10b
cmp byte [ebp + 0x50e], 0
je 0x678f9d78
mov eax, dword [ebp + 0x358]
cmp eax, dword [edi + 0x358]
jne 0x678fa10b
mov eax, dword [ebp + 0x354]
cmp eax, dword [edi + 0x354]
jne 0x678fa10b
push dword [edi + 0x34c]
push dword [ebp + 0x34c]
call fcn.67902c70
add esp, 8
test eax, eax
je 0x678fa10b
mov al, byte [ebp + 0x517]
cmp al, byte [edi + 0x517]
jne 0x678fa10b
cmp dword [ebp + 0x358], 2
jne 0x678f9d78
mov eax, dword [ebp + 0x548]
test byte [eax + 0x44], 1
je 0x678f9d4d
lea eax, [edi + 0x4d8]
push eax
lea eax, [ebp + 0x4d8]
push eax
call fcn.678f8e00
add esp, 8
test al, al
je 0x678fa10b
cmp dword [edi + 0x488], 2
jmp 0x678f9d72
lea eax, [edi + 0x4ac]
push eax
lea eax, [ebp + 0x4ac]
push eax
call fcn.678f8e00
add esp, 8
test al, al
je 0x678fa10b
cmp dword [edi + 0x468], 2
jne 0x678fa10b
mov cl, byte [esp + 0x30]
mov eax, dword [edi]
test cl, cl
jne 0x678f9d8c
test eax, eax
jne 0x678fa10f
jmp 0x678f9d9f
test eax, eax
je 0x678f9d9f
mov ecx, dword [ebp]
mov eax, dword [eax + 0x78]
cmp eax, dword [ecx + 0x78]
jne 0x678fa10b
mov ecx, dword [ebp + 0x7cc]
test ecx, ecx
jne 0x678f9db2
cmp word [ebp + 0x7d0], cx
je 0x678f9e1d
mov ax, word [edi + 0x7d0]
cmp ax, word [ebp + 0x7d0]
jne 0x678fa10b
mov eax, dword [edi + 0x7d4]
cmp eax, dword [ebp + 0x7d4]
jne 0x678fa10b
test ecx, ecx
je 0x678f9e1d
mov eax, dword [edi + 0x7cc]
test eax, eax
je 0x678fa10b
nop word [eax + eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x678f9e10
test dl, dl
je 0x678f9e0c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x678f9e10
add eax, 2
add ecx, 2
test dl, dl
jne 0x678f9df0
xor eax, eax
jmp 0x678f9e15
sbb eax, eax
or eax, 1
test eax, eax
jne 0x678fa10b
mov esi, dword [ebp + 0x548]
mov ebx, dword [esi + 0x44]
test bl, bl
js 0x678f9e9d
mov ecx, dword [edi + 0x3d8]
mov eax, dword [ebp + 0x3d8]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x678f9e56
test dl, dl
je 0x678f9e52
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x678f9e56
add eax, 2
add ecx, 2
test dl, dl
jne 0x678f9e36
xor eax, eax
jmp 0x678f9e5b
sbb eax, eax
or eax, 1
test eax, eax
jne 0x678fa103
mov ecx, dword [edi + 0x3dc]
mov eax, dword [ebp + 0x3dc]
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x678f9e90
test dl, dl
je 0x678f9e8c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x678f9e90
add eax, 2
add ecx, 2
test dl, dl
jne 0x678f9e70
xor eax, eax
jmp 0x678f9e95
sbb eax, eax
or eax, 1
test eax, eax
jne 0x678fa103
cmp byte [ebp + 0x50e], 0
je 0x678f9eb8
test bl, 1
jne 0x678f9eb8
cmp byte [ebp + 0x517], 0
je 0x678f9fa6
mov eax, dword [edi + 0x548]
push dword [eax]
push dword [esi]
call fcn.67902ca0
add esp, 8
test eax, eax
jne 0x678f9efb
mov eax, dword [edi + 0x548]
push dword [eax + 0x40]
call fcn.678fc9c0
mov ecx, dword [ebp + 0x548]
add esp, 4
cmp eax, dword [ecx + 0x40]
jne 0x678fa103
cmp byte [edi + 0x7ed], 0
je 0x678fa103
cmp byte [ebp + 0x50b], 0
je 0x678f9f20
push dword [edi + 0x31c]
push dword [ebp + 0x31c]
call fcn.67902ca0
add esp, 8
test eax, eax
je 0x678fa103
cmp byte [ebp + 0x50c], 0
je 0x678f9f3b
mov eax, dword [ebp + 0x36c]
cmp eax, dword [edi + 0x36c]
jne 0x678fa103
push dword [edi + 0x304]
push dword [ebp + 0x304]
call fcn.67902ca0
add esp, 8
test eax, eax
je 0x678fa103
mov eax, dword [ebp + 0x368]
cmp eax, dword [edi + 0x368]
jne 0x678fa103
mov eax, dword [ebp + 0x548]
test byte [eax + 0x44], 1
je 0x678f9fa6
lea eax, [edi + 0x4ac]
push eax
lea eax, [ebp + 0x4ac]
push eax
call fcn.678f8e00
add esp, 8
test al, al
je 0x678fa103
cmp dword [edi + 0x468], 2
je 0x678f9fa6
mov byte [esp + 0x12], 1
jmp 0x678fa103
mov bh, byte [esp + 0x13]
test bh, bh
je 0x678fa040
mov ecx, dword [edi + 0x3d8]
mov eax, dword [ebp + 0x3d8]
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x678f9fe0
test dl, dl
je 0x678f9fdc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x678f9fe0
add eax, 2
add ecx, 2
test dl, dl
jne 0x678f9fc0
xor eax, eax
jmp 0x678f9fe5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x678fa01e
mov ecx, dword [edi + 0x3dc]
mov eax, dword [ebp + 0x3dc]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x678fa015
test dl, dl
je 0x678fa011
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x678fa015
add eax, 2
add ecx, 2
test dl, dl
jne 0x678f9ff5
xor eax, eax
jmp 0x678fa01a
sbb eax, eax
or eax, 1
test eax, eax
je 0x678fa04d
cmp dword [edi + 0x5ec], 0
mov ebx, dword [esp + 0x2c]
mov esi, dword [esp + 0x14]
mov cl, byte [esp + 0x30]
jne 0x678fa10f
mov dword [esp + 0x18], edi
jmp 0x678fa10f
cmp dword [edi + 0x5ec], 0
jne 0x678fa103
mov al, byte [esp + 0x11]
test al, al
je 0x678fa119
mov eax, dword [edi + 0x35c]
test eax, eax
je 0x678fa103
mov edx, dword [edi + 0x360]
test edx, edx
je 0x678fa103
mov ecx, dword [ebp + 0x35c]
nop dword [eax + eax]
mov bl, byte [ecx]
cmp bl, byte [eax]
jne 0x678fa0a0
test bl, bl
je 0x678fa09c
mov bl, byte [ecx + 1]
cmp bl, byte [eax + 1]
jne 0x678fa0a0
add ecx, 2
add eax, 2
test bl, bl
jne 0x678fa080
xor eax, eax
jmp 0x678fa0a5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x678fa103
mov eax, dword [ebp + 0x360]
nop
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x678fa0d0
test cl, cl
je 0x678fa0cc
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x678fa0d0
add eax, 2
add edx, 2
test cl, cl
jne 0x678fa0b0
xor eax, eax
jmp 0x678fa0d5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x678fa103
mov al, byte [esp + 0x11]
test bh, bh
jne 0x678fa0e5
test al, al
je 0x678fa124
mov dword [esp + 0x18], edi
test bh, bh
je 0x678fa0f6
cmp dword [edi + 0x5ec], 0
jne 0x678fa147
test al, al
je 0x678fa103
cmp dword [edi + 0x5f0], 0
jne 0x678fa147
mov ebx, dword [esp + 0x2c]
mov esi, dword [esp + 0x14]
mov cl, byte [esp + 0x30]
test esi, esi
jne 0x678f9a48
jmp 0x678fa152
cmp dword [edi + 0x5f0], 0
jne 0x678fa103
jmp 0x678fa0dd
mov al, byte [esp + 0x30]
mov ebx, dword [esp + 0x2c]
test al, al
je 0x678fa156
cmp dword [esp + 0x1c], 0
je 0x678fa156
push 0x679463c4
push ebx
call fcn.678fe8f0
add esp, 8
jmp 0x678fa156
mov eax, dword [esp + 0x38]
mov ebx, dword [esp + 0x2c]
mov byte [eax], 1
mov edi, dword [esp + 0x18]
test edi, edi
je 0x678fa175
push ebx
mov dword [edi], ebx
call fcn.678f7f80
mov eax, dword [esp + 0x38]
add esp, 4
mov dword [eax], edi
mov al, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18
ret
push ebx
call fcn.678f7f80
add esp, 4
cmp byte [esp + 0x12], 0
je 0x678fa1a3
cmp byte [ebx + 0xb25], 0
je 0x678fa1a3
push 0x679463e4
push ebx
call fcn.678fe8f0
mov eax, dword [esp + 0x44]
add esp, 8
mov byte [eax], 1
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0x18
ret