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

Disassembly:
push 0xffffffffffffffff
push 0x528c48
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x54
push ebx
push ebp
push esi
push edi
mov dword [esp + 0x2c], ecx
push 6
push 0x54cbf8
lea ecx, [esp + 0x2c]
call fcn.004f58e0
xor esi, esi
push 6
push 0x54cbf8
lea ecx, [esp + 0x28]
mov dword [esp + 0x74], esi
call fcn.004f58e0
push 6
push 0x54cc44
lea ecx, [esp + 0x24]
mov byte [esp + 0x74], 1
call fcn.004f58e0
push esi
lea ecx, [esp + 0x2c]
mov byte [esp + 0x70], 2
call fcn.004f5870
push esi
lea ecx, [esp + 0x1c]
mov byte [esp + 0x70], 3
call fcn.004f5870
push 9
push 0x54cc38
lea ecx, [esp + 0x1c]
mov byte [esp + 0x74], 4
call fcn.004f58e0
mov al, byte [esp + 0x13]
mov edi, 0x554048
mov byte [esp + 0x38], al
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov byte [esp + 0x70], 5
mov ebp, ecx
lea ecx, [esp + 0x3c]
push ebp
mov dword [esp + 0x44], esi
mov dword [esp + 0x48], esi
mov dword [esp + 0x4c], esi
call fcn.004016f0
test al, al
je 0x4a6a5d
mov edi, dword [esp + 0x3c]
mov ecx, ebp
mov edx, ecx
mov esi, 0x554048
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x40], ebp
mov byte [eax + ebp], 0
mov cl, byte [0x554048]
xor eax, eax
mov byte [esp + 0x48], cl
mov ecx, 6
lea edi, [esp + 0x49]
mov byte [esp + 0x6c], 6
rep stosd dword es:[edi], eax
push ecx
lea edx, [esp + 0x28]
mov ecx, esp
mov dword [esp + 0x34], esp
push edx
call fcn.004f5850
mov ecx, dword [0x5540b4]
call fcn.004ff740
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x38], esp
push 6
push 0x54ac90
call fcn.004f58e0
mov ecx, dword [0x5540b4]
call fcn.004ff8c0
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x38], esp
push 6
push 0x54ac98
call fcn.004f58e0
mov ecx, dword [0x5540b4]
call fcn.004ff8c0
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x38], esp
push 6
push 0x54cc30
call fcn.004f58e0
mov ecx, dword [0x5540b4]
call fcn.004ff8c0
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x38], esp
push 6
push 0x54ac88
call fcn.004f58e0
mov ecx, dword [0x5540b4]
call fcn.004ff8c0
mov ecx, dword [0x5540b4]
push 1
call fcn.004fa310
mov ecx, dword [esp + 0x2c]
lea eax, [esp + 0x48]
push eax
push 1
call fcn.004a6eb0
mov bl, al
lea edi, [esp + 0x48]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebp, ecx
lea ecx, [esp + 0x38]
call fcn.00401a70
cmp eax, ebp
jae 0x4a6b56
call fcn.0051414b
mov edi, dword [esp + 0x3c]
test edi, edi
je 0x4a6b7e
mov al, byte [edi - 1]
test al, al
je 0x4a6b7e
cmp al, 0xff
je 0x4a6b7e
test ebp, ebp
jne 0x4a6ba7
dec al
push ebp
lea ecx, [esp + 0x3c]
mov byte [edi - 1], al
call fcn.004013e0
jmp 0x4a6bd3
test ebp, ebp
jne 0x4a6b8f
push 1
lea ecx, [esp + 0x3c]
call fcn.004013e0
jmp 0x4a6bd3
mov eax, dword [esp + 0x44]
cmp eax, 0x1f
ja 0x4a6b9c
cmp eax, ebp
jae 0x4a6bb5
push 1
lea ecx, [esp + 0x3c]
call fcn.004013e0
push ebp
lea ecx, [esp + 0x3c]
call fcn.00401a80
mov edi, dword [esp + 0x3c]
mov ecx, ebp
lea esi, [esp + 0x48]
mov edx, ecx
push ebp
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x3c]
call fcn.004016d0
mov edi, 0x554048
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
mov eax, dword [esp + 0x40]
not ecx
dec ecx
mov ebp, ecx
mov ecx, eax
cmp eax, ebp
jb 0x4a6bf0
mov ecx, ebp
mov esi, dword [esp + 0x3c]
mov edi, 0x554048
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x4a6c04
sbb edx, edx
sbb edx, 0xffffffff
xor edi, edi
cmp edx, edi
jne 0x4a6c19
cmp eax, ebp
jb 0x4a6c19
xor edx, edx
cmp eax, ebp
setne dl
cmp edx, edi
je 0x4a6c6f
mov al, byte [esp + 0x38]
sub esp, 0x10
mov ecx, esp
mov dword [esp + 0x40], esp
mov byte [ecx], al
mov dword [ecx + 4], edi
mov dword [ecx + 8], edi
mov dword [ecx + 0xc], edi
mov edx, dword [0x530168]
lea eax, [esp + 0x48]
push edx
push edi
push eax
call fcn.004011e0
push ecx
lea edx, [esp + 0x30]
mov ecx, esp
mov dword [esp + 0x48], esp
push edx
mov byte [esp + 0x84], 7
call fcn.004f5850
mov ecx, dword [0x5540b4]
mov byte [esp + 0x80], 6
call fcn.004ffa90
sub esp, 0x10
lea eax, [esp + 0x30]
mov esi, esp
mov dword [esp + 0x44], esp
push ecx
mov ecx, esp
mov dword [esp + 0x48], esp
push eax
call fcn.004f5850
push esi
call fcn.004fd210
mov ecx, dword [0x5540b4]
add esp, 8
call fcn.004ff940
mov ecx, dword [0x5540b4]
call fcn.004ffe70
movsx eax, ax
cmp eax, 3
ja case.default.0x4a6cb4
jmp dword [eax*4 + 0x4a6ea0]
and bl, 0xfc
jmp 0x4a6cce
and bl, 0xfd
or bl, 1
jmp 0x4a6cce
and bl, 0xfe
or bl, 2
push ebx
push 7
lea ecx, [esp + 0x1c]
call fcn.004f5c80
mov esi, dword [esp + 0x2c]
push 3
mov ecx, esi
call fcn.004a85e0
cmp ax, di
jle case.0x4a6cb4.3
push 0x1f4
call fcn.00446990
add esp, 4
mov ecx, esi
call fcn.004a81e0
cmp ax, di
jle 0x4a6df6
push 0x1f4
call fcn.00446990
mov ecx, esp
mov dword [esp + 0x38], esp
push edi
call fcn.004f5870
lea ecx, [esp + 0x1c]
lea edx, [esp + 0x18]
push ecx
push ecx
mov ecx, esp
mov dword [esp + 0x3c], esp
push edx
mov byte [esp + 0x7c], 8
call fcn.004f5850
mov ecx, 0x5574f0
mov byte [esp + 0x78], 6
call fcn.004a3b90
cmp ax, di
jl 0x4a6db9
je 0x4a6df6
push edi
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x40], esp
push 6
push 0x548208
call fcn.004f58e0
push ecx
mov byte [esp + 0x7c], 0xa
mov ecx, esp
mov dword [esp + 0x40], esp
push 6
push 0x54cc28
call fcn.004f58e0
mov ecx, 0x5540a8
mov byte [esp + 0x7c], 6
call fcn.004f91a0
push 0x1f4
call fcn.00446990
add esp, 4
mov ecx, esi
push 3
call fcn.004a8790
mov al, 1
test al, al
jne 0x4a6a79
xor edi, edi
jmp case.0x4a6cb4.3
push edi
push 2
push ecx
mov ecx, esp
mov dword [esp + 0x40], esp
push 6
push 0x548208
call fcn.004f58e0
push ecx
mov byte [esp + 0x7c], 9
mov ecx, esp
mov dword [esp + 0x40], esp
push 6
push 0x54cc20
call fcn.004f58e0
mov ecx, 0x5540a8
mov byte [esp + 0x7c], 6
call fcn.004f91a0
push 3
mov ecx, esi
call fcn.004a8790
mov eax, dword [esp + 0x3c]
cmp eax, edi
je 0x4a6e24
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x4a6e1b
cmp al, 0xff
je 0x4a6e1b
dec al
mov byte [ecx], al
jmp 0x4a6e24
push ecx
call fcn.00514140
add esp, 4
lea ecx, [esp + 0x14]
mov dword [esp + 0x3c], edi
mov dword [esp + 0x40], edi
mov dword [esp + 0x44], edi
mov byte [esp + 0x6c], 4
call fcn.004f5980
lea ecx, [esp + 0x18]
mov byte [esp + 0x6c], 3
call fcn.004f5980
lea ecx, [esp + 0x28]
mov byte [esp + 0x6c], 2
call fcn.004f5980
lea ecx, [esp + 0x1c]
mov byte [esp + 0x6c], 1
call fcn.004f5980
lea ecx, [esp + 0x20]
mov byte [esp + 0x6c], 0
call fcn.004f5980
lea ecx, [esp + 0x24]
mov dword [esp + 0x6c], 0xffffffff
call fcn.004f5980
mov ecx, dword [esp + 0x64]
pop edi
pop esi
pop ebp
xor ax, ax
mov dword fs:[0], ecx
pop ebx
add esp, 0x60
ret