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

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x54
mov eax, dword [0x4f515ec4]
xor eax, esp
mov dword [esp + 0x50], eax
mov eax, dword [ebp + 0x10]
mov edx, dword [ebp + 8]
push ebx
push esi
push edi
mov dword [esp + 0x10], eax
lea edi, [esp + 0x3c]
mov eax, dword [ebp + 0x20]
xor ebx, ebx
push 8
mov dword [esp + 0x28], eax
xor esi, esi
xor eax, eax
mov dword [esp + 0x30], edx
pop ecx
rep stosd dword es:[edi], eax
test edx, edx
je 0x4f49f3c6
cmp dword [esp + 0x10], eax
je 0x4f49f3c6
cmp dword [ebp + 0xc], eax
jbe 0x4f49f3c6
cmp dword [ebp + 0x18], eax
jne 0x4f49f3df
cmp dword [ebp + 0x14], eax
je 0x4f49f3e4
mov eax, 0x80070057
mov ecx, dword [esp + 0x5c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.4f5085c0
mov esp, ebp
pop ebp
ret 0x1c
cmp dword [ebp + 0x14], eax
jbe 0x4f49f3c6
cmp dword [esp + 0x24], eax
je 0x4f49f3c6
cmp dword [ebp + 0x1c], eax
jbe 0x4f49f3c6
push 0
push 0
push edx
call fcn.4f4e7537
mov edi, eax
mov dword [esp + 0x34], edi
test edi, edi
je 0x4f49fa43
mov ecx, edi
call fcn.4f4e7537
test eax, eax
je 0x4f49fa32
mov ecx, dword [esp + 0x2c]
push 2
pop edx
call fcn.4f4e7537
mov esi, eax
test esi, esi
je 0x4f49fa32
mov edx, dword [esi + 0x1c]
mov ecx, edi
push 1
push 0
push dword [esp + 0x18]
call fcn.4f49ccc5
test eax, eax
je 0x4f49fa32
mov ecx, edi
call fcn.4f49d0e9
test eax, eax
je 0x4f49fa32
push esi
call dword [sym.imp.kernel32.dll_LocalFree]
push 0
push 0
xor edx, edx
mov ecx, edi
call fcn.4f4e7537
mov eax, dword [edi + 0x18]
mov eax, dword [eax + 0x14]
mov dword [esp + 0x38], eax
test eax, eax
je 0x4f49fa43
mov ecx, dword [edi + 0x28]
mov esi, dword [ecx + 4]
cmp esi, 8
jbe 0x4f49f491
push edi
call fcn.4f4e7537
jmp 0x4f49fa43
test esi, esi
je 0x4f49f555
add ecx, 0x18
lea eax, [esp + 0x3c]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x14], eax
mov eax, dword [ecx + 0xc]
dec esi
test eax, eax
je 0x4f49f546
and dword [esp + 0x10], 0
mov edx, 0x4f484068
push eax
lea eax, [esp + 0x14]
mov ecx, 0x4f484058
push eax
call fcn.4f4e7537
mov ebx, eax
test ebx, ebx
jns 0x4f49f4e8
cmp ebx, 0x80040111
je 0x4f49f4e4
cmp ebx, 0x80004002
jne 0x4f49f555
xor ebx, ebx
jmp 0x4f49f542
cmp dword [0x4f51686c], 0
mov ecx, dword [esp + 0x10]
je 0x4f49f5a5
cmp dword [0x4f516868], 0
je 0x4f49f5a5
test ecx, ecx
je 0x4f49f5a5
push dword [esp + 0x14]
mov edx, ecx
mov ecx, dword [esp + 0x24]
push 0x4f484068
push 0x4f484058
mov ecx, dword [ecx]
call fcn.4f4e7537
test eax, eax
jns 0x4f49f537
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
mov dword [ecx], eax
mov eax, dword [esp + 0x14]
add eax, 4
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 0x20]
add ecx, 0x78
mov dword [esp + 0x20], ecx
test esi, esi
jne 0x4f49f4a8
mov ecx, dword [esp + 0x24]
xor edx, edx
mov dword [esp + 0x2c], edx
mov eax, dword [ecx + 4]
mov dword [esp + 0x14], eax
test ebx, ebx
js 0x4f49f9e9
cmp edx, dword [ecx]
jae 0x4f49f9e9
mov edx, dword [eax]
mov ecx, 0x4f483f28
mov eax, edx
mov si, word [eax]
cmp si, word [ecx]
jne 0x4f49f5ad
test si, si
je 0x4f49f5a1
mov si, word [eax + 2]
cmp si, word [ecx + 2]
jne 0x4f49f5ad
add eax, 4
add ecx, 4
test si, si
jne 0x4f49f57f
xor eax, eax
jmp 0x4f49f5b2
mov eax, dword [esp + 0x14]
mov dword [eax], ecx
jmp 0x4f49f53b
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4f49f7c5
mov eax, dword [esp + 0x14]
cmp dword [eax + 8], 0xa
jne 0x4f49f9e4
cmp dword [eax + 0x10], 0x10
jne 0x4f49f9e4
mov eax, dword [eax + 0x14]
mov esi, dword [esp + 0x24]
mov dword [esp + 0x28], eax
xor eax, eax
and dword [esp + 0x10], eax
mov dword [esp + 0x18], 1
mov dword [esp + 0x1c], eax
cmp dword [esi], eax
jbe 0x4f49f656
mov eax, dword [esi + 4]
mov ecx, dword [eax]
mov edx, 0x4f483f4c
mov si, word [ecx]
cmp si, word [edx]
jne 0x4f49f623
test si, si
je 0x4f49f61f
mov si, word [ecx + 2]
cmp si, word [edx + 2]
jne 0x4f49f623
add ecx, 4
add edx, 4
test si, si
jne 0x4f49f5fd
xor ecx, ecx
jmp 0x4f49f628
sbb ecx, ecx
or ecx, 1
test ecx, ecx
jne 0x4f49f63c
cmp dword [eax + 8], 0xa
jne 0x4f49f63c
cmp dword [eax + 0x10], 8
je 0x4f49f6be
mov esi, dword [esp + 0x10]
add eax, 0x18
mov ecx, dword [esp + 0x24]
inc esi
mov dword [esp + 0x10], esi
cmp esi, dword [ecx]
jb 0x4f49f5f6
mov eax, dword [esp + 0x1c]
mov esi, ecx
mov edx, dword [esp + 0x38]
mov ecx, edi
push eax
lea eax, [esp + 0x1c]
push eax
push dword [esp + 0x30]
call fcn.4f4e7537
test eax, eax
je 0x4f49f9dd
xor eax, eax
xor ecx, ecx
mov dword [esp + 0x10], eax
cmp dword [esi], eax
jbe 0x4f49f6f8
mov esi, dword [esi + 4]
mov eax, dword [esi]
mov edx, 0x4f483f84
mov di, word [eax]
cmp di, word [edx]
mov edi, dword [esp + 0x34]
jne 0x4f49f6c7
cmp word [eax], cx
je 0x4f49f6ba
mov di, word [eax + 2]
cmp di, word [edx + 2]
mov word [esp + 0x20], di
mov edi, dword [esp + 0x34]
jne 0x4f49f6c7
add eax, 4
add edx, 4
cmp word [esp + 0x20], cx
jne 0x4f49f689
xor eax, eax
jmp 0x4f49f6cc
mov eax, dword [eax + 0x14]
mov esi, dword [esp + 0x24]
jmp 0x4f49f656
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4f49f6d6
cmp dword [esi + 8], 2
je 0x4f49f6ec
mov eax, dword [esp + 0x10]
add esi, 0x18
mov edx, dword [esp + 0x24]
inc eax
mov dword [esp + 0x10], eax
cmp eax, dword [edx]
jb 0x4f49f682
jmp 0x4f49f6f8
imul ecx, dword [esp + 0x10], 0x18
mov eax, dword [esp + 0x24]
add ecx, dword [eax + 4]
test ebx, ebx
js 0x4f49f712
cmp dword [esp + 0x18], 0
jne 0x4f49f712
test ecx, ecx
je 0x4f49f70d
and dword [ecx + 0x10], 0
jmp 0x4f49f712
mov ebx, 0x80004005
mov eax, dword [edi + 0x2c]
movzx edx, word [eax + 0x44]
add edx, eax
movzx eax, word [edx + 0x72]
test ax, ax
je 0x4f49f729
lea ecx, [edx + eax]
jmp 0x4f49f72b
xor ecx, ecx
xor eax, eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x20], eax
test ebx, ebx
js 0x4f49f9bc
xor edx, edx
mov dword [esp + 0x1c], edx
mov esi, dword [edi + 0x28]
cmp eax, dword [esi + 4]
jae 0x4f49f9bc
mov esi, dword [esi + edx + 0x34]
mov dword [esp + 0x18], esi
mov esi, dword [esp + eax*4 + 0x3c]
mov dword [esp + 0x30], esi
test esi, esi
je 0x4f49f7a8
push dword [esp + 0x28]
mov eax, dword [edi + 0x2c]
mov esi, dword [esi]
push ecx
push dword [esp + 0x20]
movzx ecx, word [eax + 0x46]
push eax
movzx eax, word [eax + 0x44]
add ecx, eax
push ecx
push dword [edi + 0x10]
mov ecx, dword [esi + 0xc]
push dword [esp + 0x48]
call dword [0x4f5173b4]
call dword [esi + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x1c]
lea ebx, [eax + 0x7fffbfff]
neg ebx
sbb ebx, ebx
and ebx, eax
mov eax, dword [esp + 0x20]
add ecx, dword [esp + 0x18]
add edx, 0x78
inc eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], edx
test ebx, ebx
jns 0x4f49f743
jmp 0x4f49f9bc
mov ecx, 0x4f483fb0
mov eax, edx
mov si, word [eax]
cmp si, word [ecx]
jne 0x4f49f7f2
test si, si
je 0x4f49f7ee
mov si, word [eax + 2]
cmp si, word [ecx + 2]
jne 0x4f49f7f2
add eax, 4
add ecx, 4
test si, si
jne 0x4f49f7cc
xor eax, eax
jmp 0x4f49f7f7
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4f49f8c8
mov eax, dword [esp + 0x14]
cmp dword [eax + 8], 2
jne 0x4f49f9e4
mov eax, dword [edi + 0x2c]
movzx edx, word [eax + 0x44]
add edx, eax
movzx eax, word [edx + 0x72]
test ax, ax
je 0x4f49f824
lea ecx, [edx + eax]
jmp 0x4f49f826
xor ecx, ecx
xor eax, eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x28], eax
test ebx, ebx
js 0x4f49f9bc
xor edx, edx
mov dword [esp + 0x18], edx
mov esi, dword [edi + 0x28]
cmp eax, dword [esi + 4]
jae 0x4f49f9bc
mov esi, dword [esi + edx + 0x34]
mov dword [esp + 0x1c], esi
mov esi, dword [esp + eax*4 + 0x3c]
mov dword [esp + 0x30], esi
test esi, esi
je 0x4f49f8a7
mov eax, dword [esp + 0x14]
mov edx, dword [edi + 0x2c]
add eax, 0x10
mov esi, dword [esi]
push eax
push ecx
push dword [esp + 0x24]
movzx ecx, word [edx + 0x46]
movzx eax, word [edx + 0x44]
push edx
add ecx, eax
push ecx
push dword [edi + 0x10]
mov ecx, dword [esi + 0x10]
push dword [esp + 0x48]
call dword [0x4f5173b4]
call dword [esi + 0x10]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
lea ebx, [eax + 0x7fffbfff]
neg ebx
sbb ebx, ebx
and ebx, eax
mov eax, dword [esp + 0x28]
add ecx, dword [esp + 0x1c]
add edx, 0x78
inc eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x28], eax
mov dword [esp + 0x18], edx
test ebx, ebx
jns 0x4f49f83e
jmp 0x4f49f9bc
mov eax, 0x4f483fe4
mov cx, word [edx]
cmp cx, word [eax]
jne 0x4f49f8f3
test cx, cx
je 0x4f49f8ef
mov cx, word [edx + 2]
cmp cx, word [eax + 2]
jne 0x4f49f8f3
add edx, 4
add eax, 4
test cx, cx
jne 0x4f49f8cd
xor eax, eax
jmp 0x4f49f8f8
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4f49f9bc
mov eax, dword [esp + 0x14]
cmp dword [eax + 8], 2
jne 0x4f49f9e4
mov eax, dword [edi + 0x2c]
movzx edx, word [eax + 0x44]
add edx, eax
movzx eax, word [edx + 0x72]
test ax, ax
je 0x4f49f925
lea ecx, [edx + eax]
jmp 0x4f49f927
xor ecx, ecx
xor eax, eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x28], eax
test ebx, ebx
js 0x4f49f9bc
xor edx, edx
mov dword [esp + 0x18], edx
mov esi, dword [edi + 0x28]
cmp eax, dword [esi + 4]
jae 0x4f49f9bc
mov esi, dword [esi + edx + 0x34]
mov dword [esp + 0x1c], esi
mov esi, dword [esp + eax*4 + 0x3c]
mov dword [esp + 0x30], esi
test esi, esi
je 0x4f49f9a4
mov eax, dword [esp + 0x14]
mov edx, dword [edi + 0x2c]
add eax, 0x10
mov esi, dword [esi]
push eax
push ecx
push dword [esp + 0x24]
movzx ecx, word [edx + 0x46]
movzx eax, word [edx + 0x44]
push edx
add ecx, eax
push ecx
push dword [edi + 0x10]
mov ecx, dword [esi + 0x14]
push dword [esp + 0x48]
call dword [0x4f5173b4]
call dword [esi + 0x14]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
lea ebx, [eax + 0x7fffbfff]
neg ebx
sbb ebx, ebx
and ebx, eax
mov eax, dword [esp + 0x28]
add ecx, dword [esp + 0x1c]
add edx, 0x78
inc eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x28], eax
mov dword [esp + 0x18], edx
test ebx, ebx
jns 0x4f49f93f
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x14]
inc edx
add eax, 0x18
mov dword [esp + 0x2c], edx
mov dword [esp + 0x14], eax
test ebx, ebx
js 0x4f49f9e9
mov ecx, dword [esp + 0x24]
jmp 0x4f49f56e
mov ebx, 0x80004005
jmp 0x4f49f9e9
mov ebx, 0x80070057
mov eax, dword [edi + 0x28]
xor ecx, ecx
mov dword [esp + 0x2c], ecx
cmp dword [eax + 4], ecx
jbe 0x4f49fa25
mov edx, dword [esp + ecx*4 + 0x3c]
test edx, edx
je 0x4f49fa18
mov eax, dword [edx]
push edx
mov esi, dword [eax + 8]
mov ecx, esi
call dword [0x4f5173b4]
call esi
mov ecx, dword [esp + 0x2c]
and dword [esp + ecx*4 + 0x3c], 0
mov eax, dword [edi + 0x28]
inc ecx
mov dword [esp + 0x2c], ecx
cmp ecx, dword [eax + 4]
jb 0x4f49f9f7
push edi
call fcn.4f4e7537
mov eax, ebx
jmp 0x4f49f3cb
push edi
call fcn.4f4e7537
test esi, esi
je 0x4f49fa43
push esi
call dword [sym.imp.kernel32.dll_LocalFree]
mov eax, 0x80004005
jmp 0x4f49f3cb