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

Disassembly:
sub esp, 0x48
push ebx
mov bl, byte [esp + 0x70]
push ebp
movzx ebp, word [esp + 0x6c]
push esi
push edi
mov edi, dword [esp + 0x6c]
mov eax, ebp
shl eax, 5
mov dword [esp + 0x3c], edx
mov dword [esp + 0x30], ecx
push 7
mov ecx, dword [eax + edi]
mov edx, dword [eax + edi + 4]
movzx eax, word [esp + 0x7c]
shl eax, 5
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], edx
mov esi, dword [eax + edi]
mov eax, dword [eax + edi + 4]
sub esi, ecx
mov dword [esp + 0x18], esi
mov cl, bl
sbb eax, edx
mov dword [esp + 0x14], eax
pop eax
mov dl, al
test bl, bl
jle 0xfff9503f
add cl, cl
dec dl
test cl, cl
jg 0xfff95037
movsx ecx, dl
movzx edx, bl
btr edx, ecx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x44], edx
mov cl, dl
mov byte [esp + 0x50], dl
test dl, dl
jle 0xfff95062
add cl, cl
dec al
test cl, cl
jg 0xfff9505a
cmp dword [esp + 0x84], 0
movsx eax, al
mov dword [esp + 0x48], eax
jne 0xfff950b0
mov eax, dword [esp + 0x68]
movzx ebx, word [esp + 0x78]
movzx edx, ax
mov eax, dword [esp + 0x30]
cmp dword [esp + 0x2c], eax
mov eax, edx
setne cl
imul eax, ebp
add eax, ebx
mov ebx, dword [esp + 0x70]
mov byte [eax + ebx], cl
mov eax, dword [esp + 0x30]
cmp dword [esp + 0x2c], eax
movzx ecx, word [esp + 0x78]
sete al
imul edx, ecx
add edx, ebp
mov byte [edx + ebx], al
or dword [esp + 0x20], 0xffffffff
xor ebx, ebx
or dword [esp + 0x24], 0xffffffff
xor ebp, ebp
and dword [esp + 0x40], ebx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x34], ebp
cmp dword [esp + 0x64], ebx
jbe 0xfff954d7
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x10]
add eax, 8
mov dword [esp + 0x7c], eax
mov eax, esi
or eax, edx
je 0xfff954d7
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x1c]
cmp ecx, dword [eax - 4]
jb 0xfff954bf
mov eax, dword [esp + 0x18]
ja 0xfff95111
mov edi, dword [esp + 0x7c]
cmp eax, dword [edi - 8]
jb 0xfff954bf
mov esi, dword [esp + 0x7c]
mov edi, dword [esp + 0x7c]
mov edx, dword [esi]
add edx, dword [esi - 8]
mov esi, dword [esi + 4]
adc esi, dword [edi - 4]
mov edi, dword [esp + 0x6c]
cmp esi, ecx
jb 0xfff954b7
ja 0xfff9513a
cmp edx, eax
jbe 0xfff954b7
mov ebx, dword [esp + 0x14]
mov ecx, ebx
add ecx, eax
mov eax, dword [esp + 0x10]
adc eax, dword [esp + 0x1c]
cmp eax, esi
jb 0xfff9515e
ja 0xfff95154
cmp ecx, edx
jbe 0xfff9515e
sub edx, dword [esp + 0x18]
sbb esi, dword [esp + 0x1c]
jmp 0xfff95164
mov esi, dword [esp + 0x10]
mov edx, ebx
mov eax, dword [esp + 0x7c]
mov ebx, dword [esp + 0x44]
mov ecx, dword [eax + 8]
xor eax, eax
inc eax
shl eax, cl
test bl, al
mov ebx, dword [esp + 0x28]
je 0xfff951a5
mov eax, dword [esp + 0x20]
and eax, dword [esp + 0x24]
cmp eax, 0xffffffff
jne 0xfff95199
mov eax, dword [esp + 0x18]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x24], eax
add ebx, edx
mov dword [esp + 0x28], ebx
adc ebp, esi
mov dword [esp + 0x34], ebp
add dword [esp + 0x18], edx
mov eax, ebx
adc dword [esp + 0x1c], esi
sub dword [esp + 0x14], edx
mov edx, dword [esp + 0x10]
sbb edx, esi
or eax, ebp
mov dword [esp + 0x10], edx
je 0xfff954bb
cmp ecx, dword [esp + 0x2c]
je 0xfff951d9
mov esi, dword [esp + 0x14]
mov eax, esi
or eax, edx
jne 0xfff954bf
mov cx, word [esp + 0x78]
movzx ebx, word [esp + 0x74]
mov esi, dword [esp + 0x20]
mov dword [esp + 0x38], ebx
cmp word [esp + 0x74], cx
ja 0xfff95215
mov ebp, dword [esp + 0x24]
movzx eax, bx
shl eax, 5
cmp dword [eax + edi], esi
jne 0xfff95207
cmp dword [eax + edi + 4], ebp
je 0xfff9520d
inc ebx
cmp bx, cx
jbe 0xfff951f6
mov ebp, dword [esp + 0x34]
mov dword [esp + 0x38], ebx
movzx edx, bx
mov dword [esp + 0x20], edx
cmp bx, cx
ja 0xfff9524f
mov ecx, dword [esp + 0x28]
mov bx, word [esp + 0x78]
add ecx, esi
adc ebp, dword [esp + 0x24]
movzx eax, dx
shl eax, 5
cmp dword [eax + edi], ecx
jne 0xfff95241
cmp dword [eax + edi + 4], ebp
je 0xfff95247
inc edx
cmp dx, bx
jbe 0xfff95230
mov ebx, dword [esp + 0x38]
mov dword [esp + 0x20], edx
cmp byte [esp + 0x80], 2
je 0xfff95422
movzx esi, dx
movzx eax, bx
lea ecx, [esi - 1]
cmp eax, ecx
je 0xfff95422
mov ebp, dword [esp + 0x70]
mov ecx, dword [esp + 0x68]
push 1
push edx
push ebx
push ebp
mov edx, edi
call fcn.fff94df9
add esp, 0x10
cmp dword [esp + 0x84], 0
jne 0xfff952b4
mov eax, dword [esp + 0x68]
movzx ecx, ax
movzx eax, word [esp + 0x74]
imul ecx, eax
movzx eax, word [esp + 0x78]
shl esi, 5
add ecx, eax
mov al, byte [esi + edi + 0x1d]
add byte [ecx + ebp], al
jmp 0xfff954a1
mov esi, dword [esp + 0x20]
cmp si, bx
je 0xfff954a1
mov eax, dword [esp + 0x68]
movzx ecx, ax
mov dword [esp + 0x28], ecx
movzx edx, si
movzx eax, si
mov dword [esp + 0x54], eax
mov eax, edx
shl eax, 5
mov dword [esp + 0x4c], edx
movzx eax, word [eax + edi + 0x1e]
mov edi, dword [esp + 0x70]
movzx ebp, ax
mov dword [esp + 0x34], eax
movzx esi, ax
mov eax, ebp
imul eax, ecx
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x24], ebp
add eax, edx
movzx ecx, byte [eax + ecx]
mov eax, edx
imul eax, dword [esp + 0x28]
add eax, ebp
movzx eax, byte [eax + edi]
mov edi, dword [esp + 0x6c]
add ecx, eax
je 0xfff953ac
lea eax, [edx - 1]
cmp ebp, eax
je 0xfff9532b
mov ecx, dword [esp + 0x48]
jmp 0xfff9533a
mov eax, ebp
shl eax, 5
mov ecx, dword [eax + edi + 0x18]
shl ecx, 0x19
sar ecx, 0x19
mov eax, ebp
shl eax, 5
mov ebp, dword [eax + edi]
mov eax, dword [eax + edi + 4]
mov dword [esp + 0x38], eax
mov eax, edx
shl eax, 5
mov dword [esp + 0x20], ebp
mov edx, dword [eax + edi]
mov eax, dword [eax + edi + 4]
sub edx, ebp
mov ebp, dword [esp + 0x8c]
mov edi, dword [esp + 0x88]
sbb eax, dword [esp + 0x38]
cmp dword [ebp], edi
mov edi, dword [esp + 0x6c]
mov ebp, dword [esp + 0x24]
je 0xfff954e1
push ecx
mov ecx, dword [esp + 0x88]
push eax
push edx
push dword [esp + 0x44]
mov edx, dword [esp + 0x9c]
push dword [esp + 0x30]
call fcn.fff94fa7
add esp, 0x14
test eax, eax
js 0xfff954d9
mov edx, dword [esp + 0x4c]
lea eax, [edx - 1]
cmp ebp, eax
mov ebp, dword [esp + 0x34]
je 0xfff95413
push dword [esp + 0x8c]
mov edx, dword [esp + 0x40]
push dword [esp + 0x8c]
mov ecx, dword [esp + 0x38]
push dword [esp + 0x8c]
push 2
push dword [esp + 0x60]
push dword [esp + 0x68]
push ebp
push dword [esp + 0x8c]
push edi
push dword [esp + 0x8c]
push dword [esp + 0x8c]
push dword [esp + 0x8c]
push dword [esp + 0x8c]
call fcn.fff94fe1
add esp, 0x34
test eax, eax
js 0xfff954d9
mov ecx, dword [esp + 0x28]
cmp bp, bx
jne 0xfff952cc
jmp 0xfff954a1
cmp dword [esp + 0x84], 0
jne 0xfff9544d
mov eax, dword [esp + 0x68]
sub dl, bl
movzx ecx, word [esp + 0x74]
movzx eax, ax
imul eax, ecx
movzx ecx, word [esp + 0x78]
add eax, ecx
mov ecx, dword [esp + 0x70]
add byte [eax + ecx], dl
jmp 0xfff954a1
cmp bx, dx
je 0xfff954a1
mov esi, dword [esp + 0x20]
mov edx, dword [esp + 0x8c]
mov ebp, dword [esp + 0x88]
movzx eax, bx
shl eax, 5
mov ecx, dword [eax + edi + 0x18]
shl ecx, 0x19
sar ecx, 0x19
cmp dword [edx], ebp
je 0xfff954e1
push ecx
push dword [eax + edi + 0x14]
mov ecx, dword [esp + 0x8c]
push dword [eax + edi + 0x10]
push dword [eax + edi + 4]
push dword [eax + edi]
call fcn.fff94fa7
add esp, 0x14
test eax, eax
js 0xfff954d9
inc ebx
cmp bx, si
jne 0xfff95464
or dword [esp + 0x20], 0xffffffff
xor ebx, ebx
or dword [esp + 0x24], 0xffffffff
xor ebp, ebp
mov dword [esp + 0x28], ebx
mov dword [esp + 0x34], ebp
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x40]
add dword [esp + 0x7c], 0x18
inc ecx
mov dword [esp + 0x40], ecx
cmp ecx, dword [esp + 0x64]
jb 0xfff950e3
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x48
ret
mov eax, 0x80000009
jmp 0xfff954d9