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

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffdc
push ebx
push esi
push edi
xor ecx, ecx
mov dword [ebp - 0x24], ecx
mov dword [ebp - 4], ecx
mov esi, edx
mov edi, eax
xor eax, eax
push ebp
push 0x4f9c43
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 5], 0
test esi, esi
je 0x4f9c25
mov byte [ebp - 5], 1
mov edx, 7
mov eax, esi
call fcn.0052e02c
test al, al
jne 0x4f9c25
mov eax, dword [0x654f6c]
mov byte [eax], 1
lea edx, [ebp - 0x24]
mov eax, esi
call fcn.0052e2fc
mov eax, dword [ebp - 0x24]
lea edx, [ebp - 4]
call fcn.0040d1c4
push 0xfffffffffffffff0
push esi
call fcn.0040a348
mov dword [ebp - 0xc], eax
xor ebx, ebx
mov eax, dword [ebp - 4]
mov edx, 0x4f9c64
call fcn.00406f04
jne 0x4f93da
mov eax, dword [ebp - 0xc]
and eax, 0x1f
mov edx, dword [ebp - 0xc]
and edx, 3
cmp edx, 3
je 0x4f9324
mov edx, dword [ebp - 0xc]
and edx, 0xe
cmp edx, 0xe
jne 0x4f938c
push 0xffffffffffffffec
push esi
call fcn.0040a348
and eax, 0x20000
cmp eax, 0x20000
jne 0x4f9362
push 0
mov eax, dword [edi + 0x38]
mov eax, dword [eax + 0x5c]
call fcn.0051b8fc
push eax
push 0x4f9c80
push 1
mov ecx, esi
mov dl, 1
mov eax, dword [0x4d4668]
call fcn.004e62e8
mov ebx, eax
jmp 0x4f9bf5
push 0
mov eax, dword [edi + 0x38]
mov eax, dword [eax + 0x5c]
call fcn.0051b8fc
push eax
push 0x4f9c98
push 1
mov ecx, esi
mov dl, 1
mov eax, dword [0x4d46e8]
call fcn.004ea26c
mov ebx, eax
jmp 0x4f9bf5
mov edx, dword [ebp - 0xc]
and edx, 0xd
cmp edx, 0xd
je 0x4f9bf5
add eax, 0xfffffffb
sub eax, 2
jb 0x4f9bf5
sub eax, 4
je 0x4f9bf5
push 0
mov eax, dword [edi + 0x38]
mov eax, dword [eax + 0x5c]
call fcn.0051b8fc
push eax
push 0x4f9c98
push 1
mov ecx, esi
mov dl, 1
mov eax, dword [0x4d45e4]
call fcn.004e62e8
mov ebx, eax
jmp 0x4f9bf5
mov eax, dword [ebp - 4]
mov edx, 0x4f9cb8
call fcn.00406f04
jne 0x4f9413
push 0
mov eax, dword [edi + 0x38]
mov eax, dword [eax + 0x5c]
call fcn.0051b8fc
push eax
push 0x4f9c98
push 1
mov ecx, esi
mov dl, 1
mov eax, dword [0x4d4c84]
call fcn.004e62e8
mov ebx, eax
jmp 0x4f9bf5
mov eax, dword [ebp - 4]
mov edx, 0x4f9cd4
call fcn.00406f04
jne 0x4f954f
push 0
mov eax, dword [edi + 0x38]
mov eax, dword [eax + 0x5c]
call fcn.0051b8fc
push eax
push 0x4f9c98
push 1
mov ecx, esi
mov dl, 1
mov eax, dword [0x4d4e24]
call fcn.004ec758
mov ebx, eax
mov eax, esi
call fcn.0048ad7c
mov edx, dword [ebx + 0x5c]
mov dword [edx + 0x38], eax
mov eax, dword [ebx + 0x5c]
mov esi, dword [eax + 0x38]
test esi, esi
je 0x4f9bf5
mov eax, esi
mov edx, dword [0x4896e4]
call fcn.00404604
test al, al
je 0x4f9bf5
mov eax, esi
call fcn.00492ba4
dec eax
test eax, eax
jl 0x4f952d
inc eax
mov dword [ebp - 0x10], eax
xor esi, esi
mov eax, dword [ebx + 0x5c]
mov eax, dword [eax + 0x38]
mov edx, esi
call fcn.00492b68
mov edx, dword [0x44c60c]
call fcn.00404604
test al, al
je 0x4f94ec
mov eax, dword [ebx + 0x5c]
mov eax, dword [eax + 0x38]
mov edx, esi
call fcn.00492b68
mov eax, dword [eax + 0x64]
push eax
mov eax, dword [edi + 0x38]
mov eax, dword [eax + 0x5c]
call fcn.0051b8fc
call fcn.00575310
mov edx, eax
pop eax
call fcn.0043861c
mov eax, dword [ebx + 0x5c]
mov eax, dword [eax + 0x38]
mov edx, esi
call fcn.00492b68
mov dl, 1
call fcn.004525c8
jmp 0x4f9523
mov eax, dword [ebx + 0x5c]
mov eax, dword [eax + 0x38]
mov edx, esi
call fcn.00492b68
mov edx, dword [0x4896e4]
call fcn.00404604
test al, al
je 0x4f9523
mov eax, dword [ebx + 0x5c]
mov eax, dword [eax + 0x38]
mov edx, esi
call fcn.00492b68
call fcn.00496f10
mov edx, eax
mov eax, edi
call fcn.004f9284
inc esi
dec dword [ebp - 0x10]
jne 0x4f9491
mov eax, dword [edi + 0x38]
mov eax, dword [eax + 0x5c]
call fcn.0051b8fc
call fcn.00575308
mov edx, eax
mov eax, dword [ebx + 0x5c]
mov eax, dword [eax + 0x38]
call fcn.0048e78c
jmp 0x4f9bf5
mov eax, dword [ebp - 4]
mov edx, 0x4f9cf0
call fcn.00406f04
jne 0x4f95bb
push 0
mov eax, dword [edi + 0x38]
mov eax, dword [eax + 0x5c]
call fcn.0051b8fc
push eax
push 0x4f9d20
push 1
mov ecx, esi
mov dl, 1
mov eax, dword [0x4d4e24]
call fcn.004ec758
mov ebx, eax
mov eax, esi
call fcn.0048ad7c
mov edx, dword [ebx + 0x5c]
mov dword [edx + 0x38], eax
mov eax, dword [ebx + 0x5c]
cmp dword [eax + 0x38], 0
je 0x4f95af
mov eax, dword [ebx + 0x5c]
mov eax, dword [eax + 0x38]
mov dword [ebx + 0x78], eax
mov eax, dword [ebx + 0x5c]
mov eax, dword [eax + 0x38]
xor edx, edx
call fcn.0048e60c
mov eax, dword [ebx + 0x5c]
mov byte [eax + 0x35], 1
jmp 0x4f9bf5
mov eax, dword [ebp - 4]
mov edx, 0x4f9d40
call fcn.00406f04
jne 0x4f9623
mov eax, dword [edi + 0x38]
test eax, eax
je 0x4f95d8
mov byte [eax + 0xa1], 0
push esi
call fcn.0040a410
test eax, eax
je 0x4f9bf5
push 0
mov eax, dword [edi + 0x38]
mov eax, dword [eax + 0x5c]
call fcn.0051b8fc
push eax
push 0x4f9c80
mov eax, dword [edi + 0x38]
mov eax, dword [eax + 0x5c]
mov eax, dword [eax + 0x40]
mov edx, dword [eax]
call dword [edx + 0x20]
xor al, 1
push eax
mov ecx, esi
mov dl, 1
mov eax, dword [0x4d50ac]
call fcn.004dcda0
mov ebx, eax
mov byte [ebx + 4], 1
jmp 0x4f9bf5
mov eax, dword [ebp - 4]
mov edx, 0x4f9d58
call fcn.00406f04
je 0x4f9645
mov eax, dword [ebp - 4]
mov edx, 0x4f9d74
call fcn.00406f04
jne 0x4f972f
mov eax, dword [ebp - 0xc]
and eax, 7
cmp eax, 7
jne 0x4f967a
push 0
mov eax, dword [edi + 0x38]
mov eax, dword [eax + 0x5c]
call fcn.0051b8fc
push eax
push 0x4f9d20
push 1
mov ecx, esi
mov dl, 1
mov eax, dword [0x4d4d04]
call fcn.004e91ec
mov ebx, eax
jmp 0x4f9bf5
mov eax, dword [ebp - 0xc]
and eax, 3
cmp eax, 3
je 0x4f969b
mov eax, dword [ebp - 0xc]
and eax, 2
cmp eax, 2
je 0x4f969b
mov eax, dword [ebp - 0xc]
and eax, 5
cmp eax, 5
jne 0x4f96c5
push 0
mov eax, dword [edi + 0x38]
mov eax, dword [eax + 0x5c]
call fcn.0051b8fc
push eax
push 0x4f9c98
push 1
mov ecx, esi
mov dl, 1
mov eax, dword [0x4d4a94]
call fcn.004e9eb8
mov ebx, eax
jmp 0x4f9bf5
mov eax, dword [ebp - 0xc]
and eax, 9
cmp eax, 9
je 0x4f96db
mov eax, dword [ebp - 0xc]
and eax, 4
cmp eax, 4
jne 0x4f9705
push 0
mov eax, dword [edi + 0x38]
mov eax, dword [eax + 0x5c]
call fcn.0051b8fc
push eax
push 0x4f9c98
push 1
mov ecx, esi
mov dl, 1
mov eax, dword [0x4d4a94]
call fcn.004e9eb8
mov ebx, eax
jmp 0x4f9bf5
push 0
mov eax, dword [edi + 0x38]
mov eax, dword [eax + 0x5c]
call fcn.0051b8fc
push eax
push 0x4f9d90
push 1
mov ecx, esi
mov dl, 1
mov eax, dword [0x4d47e8]
call fcn.004e7624
mov ebx, eax
jmp 0x4f9bf5
mov eax, dword [ebp - 4]
mov edx, 0x4f9dac
call fcn.00406f04
jne 0x4f9789
mov eax, dword [edi + 0x38]
test eax, eax
je 0x4f974c
mov byte [eax + 0xa1], 0
push 0
mov eax, dword [edi + 0x38]
mov eax, dword [eax + 0x5c]
call fcn.0051b8fc
push eax
push 0x4f9dcc
mov eax, dword [edi + 0x38]
mov eax, dword [eax + 0x5c]
mov eax, dword [eax + 0x40]
mov edx, dword [eax]
call dword [edx + 0x20]
xor al, 1
push eax
mov ecx, esi
mov dl, 1
mov eax, dword [0x4d5408]
call fcn.004e10b8
mov ebx, eax
mov byte [ebx + 4], 1
jmp 0x4f9bf5
mov eax, dword [ebp - 4]
mov edx, 0x4f9dec
call fcn.00406f04
jne 0x4f97d0
mov eax, dword [edi + 0x38]
test eax, eax
je 0x4f97a6
mov byte [eax + 0xa1], 0
push 0
mov eax, dword [edi + 0x38]
mov eax, dword [eax + 0x5c]
call fcn.0051b8fc
push eax
push 0x4f9dcc
push 1
mov ecx, esi
mov dl, 1
mov eax, dword [0x4d50ac]
call fcn.004dcda0
mov ebx, eax
jmp 0x4f9bf5
mov eax, dword [ebp - 4]
mov edx, 0x4f9e0c
call fcn.00406f04
jne 0x4f9817
mov eax, dword [edi + 0x38]
test eax, eax
je 0x4f97ed
mov byte [eax + 0xa1], 0
push 0
mov eax, dword [edi + 0x38]
mov eax, dword [eax + 0x5c]
call fcn.0051b8fc
push eax
push 0x4f9dcc
push 1
mov ecx, esi
mov dl, 1
mov eax, dword [0x4d5408]
call fcn.004e10b8
mov ebx, eax
jmp 0x4f9bf5
mov eax, dword [ebp - 4]
mov edx, 0x4f9e34
call fcn.00406f04
jne 0x4f986a
push 0xfffffffffffffff0
push esi
call fcn.0040a348
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0xc]
and eax, 0x10
cmp eax, 0x10
jne 0x4f9bf5
push 0
mov eax, dword [edi + 0x38]
mov eax, dword [eax + 0x5c]
call fcn.0051b8fc
push eax
push 0x4f9c98
push 1
mov ecx, esi
mov dl, 1
mov eax, dword [0x4d4904]
call fcn.004e62e8
mov ebx, eax
jmp 0x4f9bf5
mov eax, dword [ebp - 4]
mov edx, 0x4f9e54
call fcn.00406f04
jne 0x4f98b6
mov eax, dword [ebp - 0xc]
and eax, 0x2000
cmp eax, 0x2000
je 0x4f9bf5
push 0
mov eax, dword [edi + 0x38]
mov eax, dword [eax + 0x5c]
call fcn.0051b8fc
push eax
push 0x4f9e80
push 1
mov ecx, esi
mov dl, 1
mov eax, dword [0x4d5590]
call fcn.004eee38
mov ebx, eax
jmp 0x4f9bf5
mov eax, dword [ebp - 4]
mov edx, 0x4f9ea4
call fcn.00406f04
jne 0x4f98f3
push 0
mov eax, dword [edi + 0x38]
mov eax, dword [eax + 0x5c]
call fcn.0051b8fc
push eax
push 0x4f9c80
push 1
mov ecx, esi
mov dl, 1
mov eax, dword [0x4d521c]
call fcn.004de0c4
mov ebx, eax
mov byte [ebx + 4], 1
jmp 0x4f9bf5
mov eax, dword [ebp - 4]
mov edx, 0x4f9ecc
call fcn.00406f04
jne 0x4f9933
push 0
mov eax, dword [edi + 0x38]
mov eax, dword [eax + 0x5c]
call fcn.0051b8fc
push eax
push 0x4f9ef8
push 1
mov ecx, esi
mov dl, 1
mov eax, dword [0x4d497c]
call fcn.004eaffc
mov ebx, eax
mov dword [ebx + 0x78], 2
jmp 0x4f9bf5
mov eax, dword [ebp - 4]
mov edx, 0x4f9f28
call fcn.00406f04
jne 0x4f996c
push 0
mov eax, dword [edi + 0x38]
mov eax, dword [eax + 0x5c]
call fcn.0051b8fc
push eax
push 0x4f9f58
push 1
mov ecx, esi
mov dl, 1
mov eax, dword [0x4d4a1c]
call fcn.004f2a68
mov ebx, eax
jmp 0x4f9bf5
mov eax, dword [ebp - 4]
mov edx, 0x4f9f78
call fcn.00406f04
jne 0x4f99b7
mov eax, dword [edi + 0x38]
test eax, eax
je 0x4f9989
mov byte [eax + 0xa1], 0
push 0
mov eax, dword [edi + 0x38]
mov eax, dword [eax + 0x5c]
call fcn.0051b8fc
push eax
push 0x4f9c80
push 1
mov ecx, esi
mov dl, 1
mov eax, dword [0x4d50ac]
call fcn.004dcda0
mov ebx, eax
mov byte [ebx + 4], 1
jmp 0x4f9bf5
mov eax, dword [ebp - 4]
mov edx, 0x4f9f94
call fcn.00406f04
je 0x4f99d5
mov eax, dword [ebp - 4]
mov edx, 0x4f9fb8
call fcn.00406f04
jne 0x4f99ff
push 0
mov eax, dword [edi + 0x38]
mov eax, dword [eax + 0x5c]
call fcn.0051b8fc
push eax
push 0x4f9c98
push 1
mov ecx, esi
mov dl, 1
mov eax, dword [0x4d4768]
call fcn.004e62e8
mov ebx, eax
jmp 0x4f9bf5
mov eax, dword [ebp - 4]
mov edx, 0x4f9fd4
call fcn.00406f04
jne 0x4f9a76
push 0xfffffffffffffff0
push esi
call fcn.0040a348
and eax, 0x200
cmp eax, 0x200
jne 0x4f9a4c
push 0
mov eax, dword [edi + 0x38]
mov eax, dword [eax + 0x5c]
call fcn.0051b8fc
push eax
push 0x4fa000
push 1
mov ecx, esi
mov dl, 1
mov eax, dword [0x4d4c08]
call fcn.004e62e8
mov ebx, eax
jmp 0x4f9bf5
push 0
mov eax, dword [edi + 0x38]
mov eax, dword [eax + 0x5c]
call fcn.0051b8fc
push eax
push 0x4f9c98
push 1
mov ecx, esi
mov dl, 1
mov eax, dword [0x4d4c08]
call fcn.004e62e8
mov ebx, eax
jmp 0x4f9bf5
mov eax, dword [ebp - 4]
mov edx, 0x4fa014
call fcn.00406f04
jne 0x4f9ab3
push 0
mov eax, dword [edi + 0x38]
mov eax, dword [eax + 0x5c]
call fcn.0051b8fc
push eax
push 0x4f9c80
push 1
mov ecx, esi
mov dl, 1
mov eax, dword [0x4d538c]
call fcn.004dcda0
mov ebx, eax
mov byte [ebx + 4], 1
jmp 0x4f9bf5
mov eax, dword [ebp - 4]
mov edx, 0x4fa03c
call fcn.00406f04
jne 0x4f9aec
push 0
mov eax, dword [edi + 0x38]
mov eax, dword [eax + 0x5c]
call fcn.0051b8fc
push eax
push 0x4f9c98
push 1
mov ecx, esi
mov dl, 1
mov eax, dword [0x4d4c84]
call fcn.004e62e8
mov ebx, eax
jmp 0x4f9bf5
mov eax, dword [ebp - 4]
mov edx, 0x4fa06c
call fcn.00406f04
je 0x4f9bf5
mov eax, dword [ebp - 4]
mov edx, 0x4fa098
call fcn.00406f04
je 0x4f9b77
mov eax, dword [ebp - 4]
mov edx, 0x4fa0c0
call fcn.00406f04
je 0x4f9b77
mov eax, dword [ebp - 4]
mov edx, 0x4fa0f0
call fcn.00406f04
je 0x4f9b77
mov eax, dword [ebp - 4]
mov edx, 0x4fa124
call fcn.00406f04
je 0x4f9b77
mov eax, dword [ebp - 4]
mov edx, 0x4fa154
call fcn.00406f04
je 0x4f9b77
mov eax, dword [ebp - 4]
mov edx, 0x4fa170
call fcn.00406f04
je 0x4f9b77
mov eax, dword [ebp - 4]
mov edx, 0x4fa194
call fcn.00406f04
je 0x4f9b77
mov eax, dword [ebp - 4]
mov edx, 0x4fa1b8
call fcn.00406f04
jne 0x4f9ba8
push esi
call fcn.0040a410
test eax, eax
je 0x4f9bf5
push 0
mov eax, dword [edi + 0x38]
mov eax, dword [eax + 0x5c]
call fcn.0051b8fc
push eax
push 0x4f9c98
push 1
mov ecx, esi
mov dl, 1
mov eax, dword [0x4d4b10]
call fcn.004e62e8
mov ebx, eax
jmp 0x4f9bf5
mov eax, dword [ebp - 4]
mov edx, 0x4fa1e8
call fcn.00406f04
jne 0x4f9bf5
lea eax, [ebp - 0x20]
push eax
push esi
call fcn.0040a368
lea eax, [ebp - 0x20]
xor edx, edx
call fcn.00570ff8
cmp eax, 0x18
jne 0x4f9bf5
push 0
mov eax, dword [edi + 0x38]
mov eax, dword [eax + 0x5c]
call fcn.0051b8fc
push eax
push 0x4f9c98
push 1
mov ecx, esi
mov dl, 1
mov eax, dword [0x4d4b8c]
call fcn.004e62e8
mov ebx, eax
test ebx, ebx
je 0x4f9c1d
mov eax, dword [edi + 0x3c]
mov edx, ebx
call fcn.004241a4
lea eax, [ebx + 0x2c]
push eax
lea eax, [ebx + 0x1c]
push eax
lea eax, [ebx + 0x24]
push eax
lea ecx, [ebx + 0xc]
lea edx, [ebx + 0x3c]
mov eax, dword [edi + 0x30]
call fcn.004d5aa8
mov eax, dword [0x654f6c]
mov byte [eax], 0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4f9c4a
lea eax, [ebp - 0x24]
call fcn.00406740
lea eax, [ebp - 4]
call fcn.00406740
ret