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

Disassembly:
sub esp, 0x80
mov eax, ecx
mov dword [esp], eax
add eax, 0x48
mov dword [esp + 8], eax
jne 0x4aff1b
call fcn.00609380
nop
int3
push ebx
push ebp
push esi
push edi
push dword [esp + 0x18]
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ebx, dword [esp + 0x94]
xor esi, esi
xor edx, edx
mov dword [esp + 0x54], esi
xor ebp, ebp
mov dword [esp + 0x58], edx
mov dword [esp + 0x5c], ebp
test ebx, ebx
je 0x4affa3
cmp word [ebx], dx
je 0x4affa3
mov ecx, ebx
lea edi, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4aff50
sub ecx, edi
sar ecx, 1
lea edi, [ecx + 1]
test edi, edi
jle 0x4aff7c
push edi
lea ecx, [esp + 0x58]
call fcn.0040ce40
mov ebp, dword [esp + 0x5c]
mov edx, dword [esp + 0x58]
mov esi, dword [esp + 0x54]
lea eax, [edx + edi]
mov dword [esp + 0x58], eax
cmp eax, ebp
jle 0x4aff95
push edx
lea ecx, [esp + 0x58]
call fcn.0040cde0
mov esi, dword [esp + 0x54]
lea eax, [edi + edi]
push eax
push ebx
push esi
call fcn.004263f0
add esp, 0xc
mov ebp, dword [esp + 0x10]
lea eax, [esp + 0x54]
push eax
lea eax, [esp + 0x20]
mov ecx, ebp
push eax
call fcn.0043e960
mov eax, dword [esp + 0x1c]
cmp eax, 0xffffffff
je 0x4affd3
lea ecx, [eax + eax*2]
mov eax, dword [ebp]
lea edi, [eax + ecx*8]
test edi, edi
je 0x4affd3
mov edi, dword [edi + 0xc]
jmp 0x4affd5
xor edi, edi
test esi, esi
je 0x4affe2
push esi
call fcn.0043f8f0
add esp, 4
mov al, byte [esp + 0xa4]
test edi, edi
je 0x4b009e
test al, al
jne 0x4b0392
mov ecx, edi
call fcn.004a6ba0
test al, al
je 0x4b0199
xor esi, esi
xor edx, edx
xor ebp, ebp
mov dword [esp + 0x60], esi
mov dword [esp + 0x64], edx
mov dword [esp + 0x68], ebp
test ebx, ebx
je 0x4b0083
cmp word [ebx], dx
je 0x4b0083
mov ecx, ebx
lea edi, [ecx + 2]
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4b0030
sub ecx, edi
sar ecx, 1
lea edi, [ecx + 1]
test edi, edi
jle 0x4b005c
push edi
lea ecx, [esp + 0x64]
call fcn.0040ce40
mov ebp, dword [esp + 0x68]
mov edx, dword [esp + 0x64]
mov esi, dword [esp + 0x60]
lea eax, [edx + edi]
mov dword [esp + 0x64], eax
cmp eax, ebp
jle 0x4b0075
push edx
lea ecx, [esp + 0x64]
call fcn.0040cde0
mov esi, dword [esp + 0x60]
lea eax, [edi + edi]
push eax
push ebx
push esi
call fcn.004263f0
add esp, 0xc
mov ecx, dword [esp + 0x10]
lea eax, [esp + 0x60]
push eax
call fcn.004ae7c0
test esi, esi
je 0x4b009e
push esi
call fcn.0043f8f0
add esp, 4
push 0x1048
call fcn.0040cad0
mov edi, eax
add esp, 4
test edi, edi
je 0x4b0399
mov esi, dword [esp + 0x98]
mov ecx, esi
mov dword [edi], str.PJPJ
mov dword [edi + 0x804], 0
mov dword [edi + 0x808], 0
mov dword [edi + 0x80c], 0
lea edx, [ecx + 2]
mov dword [edi + 0x102c], 0
mov dword [edi + 0x1030], 0
mov dword [edi + 0x1034], 0
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4b0103
sub ecx, edx
sar ecx, 1
cmp ecx, 0x400
jl 0x4b0121
call fcn.0060c030
nop
int3
lea edx, [edi + 4]
sub edx, esi
nop word [eax + eax]
movzx eax, word [esi]
lea esi, [esi + 2]
mov word [esi + edx - 2], ax
test ax, ax
jne 0x4b0130
mov al, byte [esp + 0xa4]
lea ecx, [edi + 0x804]
push dword [esp + 0x9c]
mov byte [edi + 0x1038], al
call fcn.0049fc10
mov eax, dword [esp + 0xa0]
test eax, eax
je 0x4b0176
push eax
lea ecx, [edi + 0x102c]
call fcn.004145d0
mov dword [edi + 0x103c], 0
mov dword [edi + 0x1040], 0
mov dword [edi + 0x1044], 0
jmp 0x4b039b
mov edi, dword [esp + 0xa0]
cmp dword [edi + 4], 0
je 0x4b01ae
mov eax, dword [edi]
mov dword [esp + 0x14], eax
jmp 0x4b01b6
mov dword [esp + 0x14], 0x60f5ec
xor esi, esi
cmp dword [ebp + 0x40], esi
jle 0x4b0272
lea edi, [ebp + 0x3c]
xor ebp, ebp
mov dword [esp + 0x20], esi
cmp esi, dword [edi + 4]
jl 0x4b01ea
lea eax, [esp + 0x20]
mov dword [esp + 0x38], edi
mov dword [esp + 0x34], eax
lea eax, [esp + 0x34]
push eax
call fcn.006090b0
add esp, 4
nop
int3
mov eax, dword [edi]
cmp dword [eax + ebp + 4], 0
je 0x4b01f8
mov eax, dword [eax + ebp]
jmp 0x4b01fd
mov eax, 0x60f5ec
push eax
push ebx
call fcn.0042e8d0
add esp, 8
test eax, eax
jne 0x4b0258
mov dword [esp + 0x24], esi
cmp esi, dword [edi + 4]
jl 0x4b022f
lea eax, [esp + 0x24]
mov dword [esp + 0x40], edi
mov dword [esp + 0x3c], eax
lea eax, [esp + 0x3c]
push eax
call fcn.006090b0
add esp, 4
nop
int3
mov eax, dword [edi]
cmp dword [eax + ebp + 0x10], 0
je 0x4b023e
mov eax, dword [eax + ebp + 0xc]
jmp 0x4b0243
mov eax, 0x60f5ec
push eax
push dword [esp + 0x18]
call fcn.0042e8d0
add esp, 8
test eax, eax
je 0x4b0392
mov eax, dword [esp + 0x10]
inc esi
add ebp, 0x18
cmp esi, dword [eax + 0x40]
jl 0x4b01c6
mov edi, dword [esp + 0xa0]
mov ebp, eax
mov dword [esp + 0x88], 0
xorps xmm0, xmm0
mov dword [esp + 0x8c], 0
movups xmmword [esp + 0x78], xmm0
test ebx, ebx
je 0x4b02fa
cmp word [ebx], 0
je 0x4b02b4
mov ecx, ebx
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4b02a0
sub ecx, edx
sar ecx, 1
lea esi, [ecx + 1]
jmp 0x4b02b6
xor esi, esi
test esi, esi
je 0x4b02c4
push esi
lea ecx, [esp + 0x7c]
call fcn.0040ce40
mov ecx, dword [esp + 0x7c]
lea eax, [ecx + esi]
mov dword [esp + 0x7c], eax
cmp eax, dword [esp + 0x80]
jle 0x4b02e2
push ecx
lea ecx, [esp + 0x7c]
call fcn.0040cde0
test esi, esi
je 0x4b02fa
lea eax, [esi + esi]
push eax
push ebx
push dword [esp + 0x80]
call fcn.005f7171
add esp, 0xc
push edi
lea ecx, [esp + 0x88]
call fcn.004145d0
mov ecx, dword [ebp + 0x3c]
lea esi, [ebp + 0x3c]
lea eax, [esp + 0x78]
mov dword [esp + 0x28], eax
cmp eax, ecx
jb 0x4b0345
mov eax, dword [esi + 8]
lea eax, [eax + eax*2]
lea eax, [ecx + eax*8]
lea ecx, [esp + 0x78]
cmp ecx, eax
jae 0x4b0345
lea eax, [esp + 0x28]
mov dword [esp + 0x48], esi
mov dword [esp + 0x44], eax
lea eax, [esp + 0x44]
push eax
call fcn.0060b460
add esp, 4
nop
int3
mov edi, dword [esi + 4]
lea eax, [edi + 1]
mov dword [esi + 4], eax
cmp eax, dword [esi + 8]
jle 0x4b035b
push edi
mov ecx, esi
call fcn.004129b0
lea eax, [esp + 0x78]
push eax
mov eax, dword [esi]
lea ecx, [edi + edi*2]
lea ecx, [eax + ecx*8]
call fcn.00486f60
mov eax, dword [esp + 0x84]
test eax, eax
je 0x4b0381
push eax
call fcn.0043f8f0
add esp, 4
mov eax, dword [esp + 0x78]
test eax, eax
je 0x4b0392
push eax
call fcn.0043f8f0
add esp, 4
xor bl, bl
jmp 0x4b04e5
xor edi, edi
mov dword [esp + 0x2c], edi
xor edx, edx
xor edi, edi
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], edx
mov dword [esp + 0x74], edi
test ebx, ebx
je 0x4b040f
cmp word [ebx], dx
je 0x4b040f
mov ecx, ebx
lea esi, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4b03c1
sub ecx, esi
sar ecx, 1
lea esi, [ecx + 1]
test esi, esi
jle 0x4b03e9
push esi
lea ecx, [esp + 0x70]
call fcn.0040ce40
mov edi, dword [esp + 0x74]
mov edx, dword [esp + 0x70]
lea eax, [esi + edx]
mov dword [esp + 0x70], eax
cmp eax, edi
jle 0x4b03fe
push edx
lea ecx, [esp + 0x70]
call fcn.0040cde0
lea eax, [esi + esi]
push eax
push ebx
push dword [esp + 0x74]
call fcn.004263f0
add esp, 0xc
mov ebx, dword [esp + 0x10]
lea eax, [esp + 0x6c]
mov dword [esp + 0x4c], eax
mov ecx, ebx
lea eax, [esp + 0x2c]
mov dword [esp + 0x50], eax
lea eax, [esp + 0x4c]
push 0
push eax
lea eax, [esp + 0x38]
push eax
call fcn.0049cd90
mov eax, dword [esp + 0x30]
lea ecx, [eax + eax*2]
mov eax, dword [ebx]
lea esi, [eax + ecx*8]
mov eax, dword [esp + 0x6c]
test eax, eax
je 0x4b0453
push eax
call fcn.0043f8f0
add esp, 4
mov esi, dword [esi + 0xc]
xor ecx, ecx
mov edi, dword [0x6dfca0]
xor eax, eax
sfence
lea ebx, [esi + 0x103c]
lock cmpxchg dword [ebx], ecx
test eax, eax
je 0x4b0478
call fcn.00609b30
nop
int3
cmp dword [esi + 0x1044], 0
je 0x4b0488
call fcn.00609f50
nop
int3
lock inc dword [ebx]
mov dword [esi + 0x1044], edi
test edi, edi
je 0x4b04c4
mov ecx, dword [esi + 0x1040]
test ecx, ecx
jne 0x4b04b1
push 1
call fcn.00423370
add esp, 4
mov dword [esi + 0x1040], eax
mov ecx, eax
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, dword [esi + 0x1044]
push esi
mov eax, dword [ecx]
call dword [eax + 8]
jmp 0x4b04e3
push dword [esi + 0x1040]
call fcn.0042a2f0
add esp, 4
mov dword [esi + 0x1040], 0
mov ecx, esi
call fcn.004a29b0
mov bl, 1
mov ecx, dword [esp + 0x18]
test ecx, ecx
je 0x4b04f4
push ecx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
pop edi
pop esi
pop ebp
mov al, bl
pop ebx
add esp, 0x80
ret 0x14