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

Disassembly:
push 0xffffffffffffffff
push 0x53fe28
mov eax, dword fs:[0]
push eax
sub esp, 0x4c
mov eax, dword [0x58ab78]
xor eax, esp
mov dword [esp + 0x48], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x58ab78]
xor eax, esp
push eax
lea eax, [esp + 0x60]
mov dword fs:[0], eax
mov edi, edx
mov eax, ecx
mov dword [esp + 0x18], eax
mov ebx, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
mov dword [esp + 0x24], edx
lea esi, [ebx + 0x20]
cmp eax, edi
je 0x4f34ff
mov ecx, dword [edx + 0xc]
xor ebp, ebp
mov dword [esp + 0x20], ecx
mov ecx, dword [ebx + 8]
mov bh, byte [esp + 0x78]
mov dword [esp + 0x1c], ecx
test ecx, ecx
je 0x4f305c
lea ecx, [ecx]
mov bl, byte [esi]
mov edx, eax
test bl, bl
jne 0x4f2ff0
mov al, byte [eax]
test bh, bh
je 0x4f2fd2
mov ecx, dword [esp + 0x20]
movzx eax, al
mov ecx, dword [ecx]
mov al, byte [eax + ecx + 0x104]
mov ecx, dword [esp + 0x1c]
test al, al
jne 0x4f304a
mov eax, dword [esp + 0x70]
mov esi, dword [esp + 0x18]
cmp byte [eax + 0x1c], 0
jne 0x4f34fd
jmp 0x4f34fc
cmp edx, edi
je 0x4f3038
mov al, byte [edx]
test bh, bh
je 0x4f300a
mov ecx, dword [esp + 0x20]
movzx eax, al
mov ecx, dword [ecx]
mov al, byte [eax + ecx + 0x104]
cmp al, bl
jne 0x4f3038
mov bl, byte [esi + 1]
inc esi
inc edx
test bl, bl
jne 0x4f2ff0
mov eax, dword [esp + 0x70]
mov esi, dword [esp + 0x18]
cmp byte [eax + 0x1c], 0
jne 0x4f34fd
cmp edx, esi
je 0x4f34fc
mov esi, edx
jmp 0x4f34fd
cmp byte [esi], 0
je 0x4f3017
lea ecx, [ecx]
inc esi
cmp byte [esi], 0
jne 0x4f3040
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
inc ebp
inc esi
cmp ebp, ecx
jb 0x4f2fb0
mov edx, dword [esp + 0x24]
mov bl, byte [eax]
mov edi, dword [esp + 0x20]
mov byte [esp + 0x17], bl
test bh, bh
je 0x4f307a
mov ecx, dword [edi]
movzx eax, bl
mov bl, byte [eax + ecx + 0x104]
mov byte [esp + 0x17], bl
mov ebp, dword [esp + 0x70]
mov byte [esp + 0x28], bl
mov eax, dword [ebp + 0xc]
test eax, eax
jne 0x4f3092
cmp dword [ebp + 0x10], eax
je 0x4f3459
mov dword [esp + 0x40], 0xf
mov dword [esp + 0x3c], 0
mov byte [esp + 0x2c], 0
mov dword [esp + 0x68], 0
test eax, eax
je 0x4f3287
test dword [edx + 0x14], 0x200000
jne 0x4f30d4
mov byte [esp + 0x2c], bl
mov ebx, 1
mov dword [esp + 0x3c], ebx
mov byte [esp + 0x2d], 0
jmp 0x4f3146
lea eax, [esp + 0x1d]
mov byte [esp + 0x1c], bl
push eax
lea eax, [esp + 0x20]
mov byte [esp + 0x21], 0
push eax
lea eax, [esp + 0x4c]
mov ecx, edi
push eax
call fcn.00500e50
mov edi, eax
lea eax, [esp + 0x2c]
cmp eax, edi
je 0x4f312f
cmp dword [esp + 0x40], 0x10
jb 0x4f3110
push dword [esp + 0x2c]
call fcn.0047d4a0
add esp, 4
push edi
lea ecx, [esp + 0x30]
mov dword [esp + 0x44], 0xf
mov dword [esp + 0x40], 0
mov byte [esp + 0x30], 0
call fcn.0042ff70
cmp dword [esp + 0x58], 0x10
jb 0x4f3142
push dword [esp + 0x44]
call fcn.0047d4a0
add esp, 4
mov ebx, dword [esp + 0x3c]
mov eax, dword [esp + 0x70]
xor ebp, ebp
cmp dword [eax + 0xc], ebp
jbe 0x4f3285
cmp byte [esi], 0
jne 0x4f317e
test ebx, ebx
je 0x4f31c5
cmp ebx, 1
jne 0x4f317a
mov edx, dword [esp + 0x40]
lea eax, [esp + 0x2c]
mov ecx, dword [esp + 0x2c]
cmp edx, 0x10
cmovae eax, ecx
cmp byte [eax], 0
je 0x4f31d0
xor edi, edi
jmp 0x4f318c
mov edi, esi
lea ecx, [edi + 1]
mov al, byte [edi]
inc edi
test al, al
jne 0x4f3183
sub edi, ecx
cmp dword [esp + 0x40], 0x10
lea ecx, [esp + 0x2c]
mov eax, edi
cmovae ecx, dword [esp + 0x2c]
cmp ebx, edi
cmovb eax, ebx
push eax
push esi
push ecx
call fcn.0045e0d0
add esp, 0xc
test eax, eax
jne 0x4f31bf
cmp ebx, edi
jb 0x4f3263
cmp ebx, edi
setne al
test eax, eax
js 0x4f3263
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x40]
lea ecx, [ecx]
inc esi
cmp byte [esi], 0
jne 0x4f31d0
inc esi
cmp byte [esi], 0
jne 0x4f31f8
test ebx, ebx
je 0x4f3238
cmp ebx, 1
jne 0x4f31f4
cmp edx, 0x10
lea eax, [esp + 0x2c]
cmovae eax, ecx
cmp byte [eax], 0
je 0x4f3238
xor edi, edi
jmp 0x4f3209
mov edi, esi
lea ecx, [edi + 1]
lea ecx, [ecx]
mov al, byte [edi]
inc edi
test al, al
jne 0x4f3200
sub edi, ecx
cmp edx, 0x10
lea ecx, [esp + 0x2c]
mov eax, edi
cmovae ecx, dword [esp + 0x2c]
cmp ebx, edi
cmovb eax, ebx
push eax
push esi
push ecx
call fcn.0045e0d0
add esp, 0xc
test eax, eax
jne 0x4f3236
cmp ebx, edi
jb 0x4f3238
cmp ebx, edi
setne al
test eax, eax
jg 0x4f3270
mov eax, dword [esp + 0x70]
mov esi, dword [esp + 0x18]
cmp byte [eax + 0x1c], 0
jne 0x4f3247
inc esi
cmp dword [esp + 0x40], 0x10
jb 0x4f34fd
push dword [esp + 0x2c]
call fcn.0047d4a0
add esp, 4
jmp 0x4f34fd
inc esi
cmp byte [esi], 0
jne 0x4f3263
inc esi
lea ebx, [ebx]
inc esi
cmp byte [esi], 0
jne 0x4f3270
mov eax, dword [esp + 0x70]
inc ebp
inc esi
cmp ebp, dword [eax + 0xc]
jb 0x4f3155
mov ebp, eax
cmp dword [ebp + 0x10], 0
mov bl, byte [esp + 0x17]
je 0x4f3446
mov ecx, dword [esp + 0x20]
lea eax, [esp + 0x1d]
push eax
lea eax, [esp + 0x20]
mov byte [esp + 0x20], bl
push eax
lea eax, [esp + 0x4c]
mov byte [esp + 0x25], 0
push eax
call fcn.00500eb0
mov edi, eax
lea eax, [esp + 0x2c]
cmp eax, edi
je 0x4f3330
cmp dword [esp + 0x40], 0x10
jb 0x4f32d3
push dword [esp + 0x2c]
call fcn.0047d4a0
add esp, 4
mov dword [esp + 0x40], 0xf
mov dword [esp + 0x3c], 0
mov byte [esp + 0x2c], 0
cmp dword [edi + 0x14], 0x10
jae 0x4f3305
mov eax, dword [edi + 0x10]
inc eax
je 0x4f3311
push eax
lea eax, [esp + 0x30]
push edi
push eax
call fcn.0049f990
add esp, 0xc
jmp 0x4f3311
mov eax, dword [edi]
mov dword [esp + 0x2c], eax
mov dword [edi], 0
mov eax, dword [edi + 0x10]
mov dword [esp + 0x3c], eax
mov eax, dword [edi + 0x14]
mov dword [esp + 0x40], eax
mov dword [edi + 0x14], 0xf
mov dword [edi + 0x10], 0
mov byte [edi], 0
cmp dword [esp + 0x58], 0x10
jb 0x4f3343
push dword [esp + 0x44]
call fcn.0047d4a0
add esp, 4
cmp dword [ebp + 0x10], 0
mov dword [esp + 0x24], 0
jbe 0x4f3446
mov ebp, dword [esp + 0x3c]
lea esp, [esp]
cmp byte [esi], 0
jne 0x4f338d
test ebp, ebp
je 0x4f3238
cmp ebp, 1
jne 0x4f3389
cmp dword [esp + 0x40], 0x10
lea eax, [esp + 0x2c]
cmovae eax, dword [esp + 0x2c]
cmp byte [eax], 0
je 0x4f3238
xor edx, edx
jmp 0x4f339b
mov edx, esi
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x4f3392
sub edx, ecx
cmp dword [esp + 0x40], 0x10
lea edi, [esp + 0x2c]
mov ecx, edx
cmovae edi, dword [esp + 0x2c]
cmp ebp, edx
cmovb ecx, ebp
test ecx, ecx
je 0x4f3410
mov ebx, esi
sub ecx, 4
jb 0x4f33d1
jmp 0x4f33c0
mov eax, dword [edi]
cmp eax, dword [ebx]
jne 0x4f33d6
add edi, 4
add ebx, 4
sub ecx, 4
jae 0x4f33c0
cmp ecx, 0xfffffffc
je 0x4f340a
mov al, byte [edi]
cmp al, byte [ebx]
jne 0x4f3403
cmp ecx, 0xfffffffd
je 0x4f340a
mov al, byte [edi + 1]
cmp al, byte [ebx + 1]
jne 0x4f3403
cmp ecx, 0xfffffffe
je 0x4f340a
mov al, byte [edi + 2]
cmp al, byte [ebx + 2]
jne 0x4f3403
cmp ecx, 0xffffffff
je 0x4f340a
mov al, byte [edi + 3]
cmp al, byte [ebx + 3]
je 0x4f340a
sbb eax, eax
or eax, 1
jmp 0x4f340c
xor eax, eax
test eax, eax
jne 0x4f3423
cmp ebp, edx
jb 0x4f3423
xor eax, eax
cmp ebp, edx
setne al
test eax, eax
je 0x4f3238
inc esi
cmp byte [esi], 0
jne 0x4f3423
mov eax, dword [esp + 0x24]
inc esi
mov ecx, dword [esp + 0x70]
inc eax
mov dword [esp + 0x24], eax
cmp eax, dword [ecx + 0x10]
jb 0x4f3360
mov bl, byte [esp + 0x17]
mov ebp, ecx
cmp dword [esp + 0x40], 0x10
jb 0x4f3459
push dword [esp + 0x2c]
call fcn.0047d4a0
add esp, 4
mov edx, dword [ebp + 0x14]
mov edi, dword [esp + 0x20]
test edx, 0x3ff
je 0x4f347e
mov eax, dword [edi]
movzx ecx, bl
movzx eax, word [eax + ecx*2 + 0x204]
and eax, edx
test eax, 0x3ff
jne 0x4f34d2
test edx, 0x400
je 0x4f348b
cmp bl, 0x5f
je 0x4f34d2
test edx, 0x2000
je 0x4f34a7
cmp bl, 0xa
je 0x4f34d2
cmp bl, 0xd
je 0x4f34d2
cmp bl, 0xc
je 0x4f34d2
cmp bl, 0xb
je 0x4f34d2
mov esi, dword [esp + 0x28]
test edx, 0x1000
je 0x4f34de
push 8
push esi
mov ecx, edi
call fcn.004f9d30
test al, al
je 0x4f34de
push 0x2000
push esi
mov ecx, edi
call fcn.004f9d30
test al, al
jne 0x4f34de
cmp byte [ebp + 0x1c], 0
mov esi, dword [esp + 0x18]
jne 0x4f34fd
jmp 0x4f34fc
mov eax, dword [ebp + 0x18]
test eax, eax
je 0x4f34f2
push eax
push esi
mov ecx, edi
call fcn.004f9d30
test al, al
je 0x4f34d2
cmp byte [ebp + 0x1c], 0
mov esi, dword [esp + 0x18]
je 0x4f34fd
inc esi
mov eax, esi
mov ecx, dword [esp + 0x60]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x48]
xor ecx, esp
call fcn.0049f3ce
add esp, 0x58
ret 0xc