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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x4c
mov eax, dword [esp + 0x7c]
mov esi, dword [esp + 0x70]
mov ebx, dword [esp + 0x74]
mov edx, dword [esp + 0x78]
mov ebp, eax
movzx ecx, ax
mov dword [esp + 0x3c], eax
mov edi, eax
shr ebp, 0x10
shr eax, 0x18
shr al, 7
and ebp, 0x7fff
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], edx
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], ecx
mov byte [esp], al
je 0x6e94bf95
cmp ebp, 0x7fff
je 0x6e94bf70
or ecx, 0x10000
mov dword [esp + 0x2c], ecx
lea ebx, [esp + 0x20]
lea eax, [esp + 0x2c]
shr edx, 0x1d
sub eax, 4
shl ecx, 3
or edx, ecx
mov dword [eax + 4], edx
cmp eax, ebx
je 0x6e94c060
mov ecx, dword [eax]
mov edx, dword [eax - 4]
jmp 0x6e94bf4c
mov ebp, ebx
or ebp, esi
or ebp, edx
or ebp, ecx
jne 0x6e94c178
movzx eax, byte [esp]
xor edx, edx
xor ebx, ebx
mov ecx, 0x7fff
xor edi, edi
xor eax, 1
jmp 0x6e94c12f
mov ebp, ebx
or ebp, esi
or ebp, edx
or ebp, ecx
je 0x6e94c120
test ecx, ecx
je 0x6e94c203
bsr eax, ecx
mov dword [esp + 4], eax
xor dword [esp + 4], 0x1f
mov eax, dword [esp + 4]
mov edx, eax
sub edx, 0xc
lea ebx, [eax + 0x13]
mov eax, edx
cmovns ebx, edx
sar eax, 0x1f
shr eax, 0x1b
add edx, eax
and edx, 0x1f
sar ebx, 5
sub edx, eax
mov dword [esp + 0xc], ebx
mov ebp, edx
je 0x6e94c1d6
cmp ebx, 2
jg 0x6e94c3e0
mov dword [esp + 8], 0x20
mov eax, 3
sub dword [esp + 8], edx
sub eax, ebx
lea edi, [esp + 0x20]
lea eax, [edi + eax*4]
mov edx, dword [eax - 4]
movzx ecx, byte [esp + 8]
mov esi, dword [eax]
shr edx, cl
mov ecx, ebp
shl esi, cl
or edx, esi
mov dword [eax + ebx*4], edx
sub eax, 4
cmp eax, edi
jne 0x6e94c007
mov esi, dword [esp + 0x20]
sub ebx, 1
mov eax, dword [esp + 0xc]
mov ecx, ebp
shl esi, cl
mov dword [esp + eax*4 + 0x20], esi
test ebx, ebx
js 0x6e94c04a
lea edi, [esp + 0x20]
mov dword [edi + ebx*4], 0
sub ebx, 1
jns 0x6e94c03e
mov ebp, 0xffffc011
mov esi, dword [esp + 0x20]
sub ebp, dword [esp + 4]
jmp 0x6e94c071
mov eax, dword [esp + 0x20]
sub ebp, 0x3fff
lea esi, [eax*8]
movzx eax, byte [esp]
lea ecx, [ebp + 0x3fff]
mov ebx, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
mov edi, dword [esp + 0x2c]
xor eax, 1
test ecx, ecx
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], edx
mov dword [esp + 0x3c], edi
mov dword [esp], ecx
jle 0x6e94c240
test esi, 7
jne 0x6e94c190
test edi, 0x100000
je 0x6e94c0cc
and edi, 0xffefffff
mov dword [esp + 0x3c], edi
lea edi, [ebp + 0x4000]
mov dword [esp], edi
mov ecx, dword [esp]
lea edx, [esp + 0x30]
lea edi, [esp + 0x3c]
mov esi, dword [edx]
add edx, 4
mov ebx, dword [edx]
shr esi, 3
shl ebx, 0x1d
or ebx, esi
mov dword [edx - 4], ebx
cmp edx, edi
jne 0x6e94c0d7
mov edi, dword [esp + 0x3c]
mov dword [esp], ecx
shr edi, 3
cmp ecx, 0x7ffe
jg 0x6e94c228
movzx ecx, word [esp]
mov ebp, dword [esp + 0x30]
mov ebx, dword [esp + 0x34]
mov edx, dword [esp + 0x38]
and cx, 0x7fff
jmp 0x6e94c12f
movzx eax, byte [esp]
xor edx, edx
xor ebx, ebx
xor ecx, ecx
xor edi, edi
xor eax, 1
movzx esi, word [esp + 0x1e]
shl eax, 7
mov word [esp + 0x1c], di
mov edi, dword [esp + 0x60]
and si, 0x8000
or esi, ecx
mov word [esp + 0x1e], si
shr si, 8
mov ecx, esi
and ecx, 0x7f
or ecx, eax
mov eax, dword [esp + 0x60]
mov byte [esp + 0x1f], cl
mov dword [eax], ebp
mov dword [eax + 4], ebx
mov dword [eax + 8], edx
mov eax, dword [esp + 0x1c]
mov dword [edi + 0xc], eax
add esp, 0x4c
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
ret
movzx eax, byte [esp]
or di, 0x8000
mov ebp, esi
mov ecx, 0x7fff
xor eax, 1
jmp 0x6e94c12f
mov ecx, esi
and ecx, 0xf
cmp ecx, 4
je 0x6e94c0b1
add esi, 4
xor ecx, ecx
cmp esi, 3
setbe cl
mov dword [esp + 0x30], esi
mov esi, ecx
add ebx, esi
cmp esi, ebx
mov dword [esp + 0x34], ebx
seta bl
movzx ebx, bl
add edx, ebx
cmp ebx, edx
mov dword [esp + 0x38], edx
seta dl
movzx edx, dl
add edi, edx
mov dword [esp + 0x3c], edi
jmp 0x6e94c0b1
cmp ebx, 3
jg 0x6e94c3d0
mov edx, ebx
neg edx
lea eax, [esp + 0x2c]
lea ecx, [esp + ebx*4 + 0x1c]
shl edx, 2
mov esi, dword [eax + edx]
sub eax, 4
mov dword [eax + 4], esi
cmp eax, ecx
jne 0x6e94c1ee
sub ebx, 1
jmp 0x6e94c036
test edx, edx
jne 0x6e94c380
test ebx, ebx
lea esi, [esi]
je 0x6e94c3b0
bsr ebx, ebx
xor ebx, 0x1f
lea eax, [ebx + 0x40]
mov dword [esp + 4], eax
jmp 0x6e94bfb7
mov ecx, 0x7fff
xor edi, edi
xor edx, edx
xor ebx, ebx
xor ebp, ebp
jmp 0x6e94c12f
mov ecx, 0xffffc002
sub ecx, ebp
cmp ecx, 0x74
jg 0x6e94c392
test ecx, ecx
mov ebx, ecx
lea edx, [ecx + 0x1f]
cmovns edx, ecx
sar ebx, 0x1f
shr ebx, 0x1b
add ecx, ebx
mov dword [esp], ecx
sar edx, 5
and dword [esp], 0x1f
sub dword [esp], ebx
test edx, edx
jle 0x6e94c482
xor ebp, ebp
lea ecx, [esp + 0x34]
or ebp, esi
lea ebx, [esp + edx*4 + 0x30]
cmp ecx, ebx
je 0x6e94c292
mov esi, dword [ecx]
add ecx, 4
or ebp, esi
cmp ecx, ebx
jne 0x6e94c287
mov ecx, edx
mov ebx, dword [esp]
test ebx, ebx
jne 0x6e94c3f2
mov ebx, 3
sub ebx, edx
lea ecx, [esp + 0x30]
lea esi, [esp + ebx*4 + 0x34]
mov ebx, dword [ecx + edx*4]
add ecx, 4
mov dword [ecx - 4], ebx
cmp ecx, esi
jne 0x6e94c2ae
mov ebx, 4
sub ebx, edx
jmp 0x6e94c2cf
mov dword [esp + ebx*4 + 0x30], 0
add ebx, 1
cmp ebx, 3
jle 0x6e94c2c4
xor edx, edx
test ebp, ebp
setne dl
or edx, dword [esp + 0x30]
test dl, 7
mov dword [esp + 0x30], edx
je 0x6e94c3c2
mov ecx, edx
and ecx, 0xf
cmp ecx, 4
je 0x6e94c3c2
add edx, 4
xor ecx, ecx
mov dword [esp + 0x30], edx
cmp edx, 3
mov edx, dword [esp + 0x34]
setbe cl
add edx, ecx
cmp ecx, edx
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x38]
seta cl
movzx ecx, cl
add edx, ecx
cmp ecx, edx
mov dword [esp + 0x38], edx
seta dl
movzx edx, dl
add edx, dword [esp + 0x3c]
mov dword [esp + 0x3c], edx
and edx, 0x80000
jne 0x6e94c470
lea edx, [esp + 0x30]
lea esi, [esp + 0x3c]
mov ebx, dword [edx]
add edx, 4
mov ecx, dword [edx]
shr ebx, 3
shl ecx, 0x1d
or ecx, ebx
mov dword [edx - 4], ecx
cmp edx, esi
jne 0x6e94c349
mov edi, dword [esp + 0x3c]
xor ecx, ecx
mov ebp, dword [esp + 0x30]
mov ebx, dword [esp + 0x34]
mov edx, dword [esp + 0x38]
shr edi, 3
jmp 0x6e94c12f
bsr edx, edx
xor edx, 0x1f
lea eax, [edx + 0x20]
mov dword [esp + 4], eax
jmp 0x6e94bfb7
mov ebp, edx
xor ecx, ecx
or ebp, edi
or ebp, ebx
or ebp, esi
je 0x6e94c12f
xor edi, edi
xor edx, edx
xor ebx, ebx
xor ebp, ebp
jmp 0x6e94c12f
bsr eax, esi
xor eax, 0x1f
add eax, 0x60
mov dword [esp + 4], eax
jmp 0x6e94bfb7
mov edx, dword [esp + 0x3c]
jmp 0x6e94c335
mov ebx, 3
jmp 0x6e94c03a
mov ebx, 2
mov dword [esp + 0xc], 3
jmp 0x6e94c02a
mov ebx, dword [esp]
mov dword [esp + 4], 0x20
sub dword [esp + 4], ebx
mov ebx, dword [esp + ecx*4 + 0x30]
movzx ecx, byte [esp + 4]
shl ebx, cl
mov ecx, 3
or ebp, ebx
sub ecx, edx
mov dword [esp + 0xc], ecx
je 0x6e94c48b
lea ebx, [esp + 0x30]
lea edi, [ebx + ecx*4]
mov dword [esp + 8], edi
mov edi, eax
mov eax, dword [ebx + edx*4 + 4]
movzx ecx, byte [esp + 4]
mov esi, dword [ebx + edx*4]
add ebx, 4
shl eax, cl
movzx ecx, byte [esp]
shr esi, cl
or eax, esi
mov dword [ebx - 4], eax
cmp ebx, dword [esp + 8]
jne 0x6e94c428
mov eax, edi
mov edi, dword [esp + 0x3c]
mov ebx, 4
sub ebx, edx
movzx ecx, byte [esp]
mov esi, dword [esp + 0xc]
shr edi, cl
mov dword [esp + esi*4 + 0x30], edi
jmp 0x6e94c2cf
mov ecx, 1
xor edi, edi
xor edx, edx
xor ebx, ebx
xor ebp, ebp
jmp 0x6e94c12f
xor ebp, ebp
xor ecx, ecx
jmp 0x6e94c294
mov ebx, 1
jmp 0x6e94c457