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

Disassembly:
push 0xffffffffffffffff
push 0x494219
mov eax, dword fs:[0]
push eax
sub esp, 0x68
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4c150c]
xor eax, esp
push eax
lea eax, [esp + 0x7c]
mov dword fs:[0], eax
mov ebp, ecx
xor edi, edi
mov dword [esp + 0x1c], edi
mov dword [esp + 0x84], 3
call 0x5011e0
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x4eea74
push 0x80004005
call fcn.004abc80
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x20], eax
mov byte [esp + 0x84], 4
call 0x5011e0
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x4eeaa6
push 0x80004005
call fcn.004abc80
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x18], eax
mov dword [esp + 0x60], 0x497d7c
mov dword [esp + 0x6c], edi
mov dword [esp + 0x70], edi
mov dword [esp + 0x68], edi
mov dword [esp + 0x64], edi
mov dword [esp + 0x74], edi
mov dword [esp + 0x78], 0xa
lea ecx, [esp + 0x60]
push ecx
push ecx
mov ecx, esp
mov dword [esp + 0x34], esp
push 0x497e48
mov byte [esp + 0x90], 6
call fcn.004ad7f0
mov eax, dword [esp + 0xa8]
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x34], esp
mov esi, esp
push eax
mov byte [esp + 0x94], 7
call fcn.004ac040
add eax, 0x10
mov dword [esi], eax
add esp, 4
mov ecx, ebp
mov byte [esp + 0x90], 6
call fcn.004ee220
mov edx, dword [esp + 0x90]
mov eax, dword [esp + 0x8c]
push edx
push eax
lea ecx, [esp + 0x20]
push 0x4a43b4
push ecx
call fcn.004ac300
mov edx, dword [esp + 0x28]
push edx
lea eax, [esp + 0x34]
push 0x4a4368
push eax
call fcn.004ac300
mov ebx, dword [esp + 0x3c]
add esp, 0x18
add ebx, 0xfffffff0
mov dword [esp + 0x30], esp
mov esi, esp
push ebx
call fcn.004ac040
add esp, 4
lea ecx, [esp + 0x18]
add eax, 0x10
push ecx
mov ecx, ebp
mov dword [esi], eax
call fcn.004ed990
mov edx, 8
push 0x4a4354
mov byte [esp + 0x88], 8
mov word [esp + 0x44], dx
call dword [0x4973f8]
mov dword [esp + 0x48], eax
cmp eax, edi
jne 0x4eebba
push 0x8007000e
call 0x538270
mov ecx, dword [esp + 0x14]
mov byte [esp + 0x84], 9
cmp ecx, edi
jne 0x4eebd4
push 0x80004003
call 0x538270
lea eax, [esp + 0x40]
push eax
lea edx, [esp + 0x54]
push edx
call fcn.004ec7d0
push eax
lea ecx, [esp + 0x2c]
mov byte [esp + 0x88], 0xa
call fcn.004ecbd0
mov esi, dword [eax]
mov byte [esp + 0x84], 0xb
cmp esi, edi
je 0x4eec18
cmp dword [esi + 4], edi
jne 0x4eec13
mov eax, dword [esi]
push eax
call 0x538490
mov dword [esi + 4], eax
mov esi, dword [esi + 4]
jmp 0x4eec1a
xor esi, esi
push esi
call 0x524a85
mov esi, eax
mov eax, dword [esp + 0x2c]
add esp, 4
cmp eax, edi
je 0x4eec79
mov dword [esp + 0x24], eax
add eax, 8
push eax
call dword [0x4973bc]
cmp eax, edi
jne 0x4eec75
mov ecx, dword [esp + 0x24]
cmp ecx, edi
je 0x4eec75
mov eax, dword [ecx]
cmp eax, edi
je 0x4eec58
push eax
call dword [0x4973fc]
mov ecx, dword [esp + 0x24]
mov ecx, dword [ecx + 4]
cmp ecx, edi
je 0x4eec68
push ecx
call 0x4f38d2
add esp, 4
mov ecx, dword [esp + 0x24]
push ecx
call 0x4f38d2
add esp, 4
mov dword [esp + 0x28], edi
lea edx, [esp + 0x50]
push edx
call dword [0x49740c]
lea eax, [esp + 0x40]
push eax
mov byte [esp + 0x88], 8
call dword [0x49740c]
mov ecx, dword [esp + 0xa8]
mov dword [ecx], esi
cmp esi, edi
jne 0x4eed2b
mov eax, dword [esp + 0x14]
mov byte [esp + 0x84], 6
cmp eax, edi
je 0x4eecc0
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
lea ecx, [esp + 0x60]
mov byte [esp + 0x84], 5
mov dword [esp + 0x60], 0x497d7c
call fcn.004b4540
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
mov byte [esp + 0x84], 4
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4eed01
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x84], 3
lea ecx, [ebx + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4ef497
mov ecx, dword [ebx]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push ebx
call edx
jmp 0x4ef497
mov ecx, dword [esp + 0x94]
cmp esi, ecx
mov eax, 1
jle 0x4eed42
mov eax, dword [esp + 0x98]
mov ebx, ecx
imul ebx, eax
cmp ebx, esi
jg 0x4eed4f
mov edi, ecx
jmp 0x4eed55
mov edi, esi
sub edi, ebx
add edi, ecx
cmp ebx, esi
jle 0x4eed5b
mov ebx, esi
mov eax, esi
cdq
idiv ecx
xor ecx, ecx
test edx, edx
mov edx, dword [esp + 0xac]
setg cl
add ecx, eax
mov eax, dword [esp + 0x9c]
add eax, 0xfffffff0
push eax
mov dword [edx], ecx
call fcn.004ac040
lea esi, [eax + 0x10]
mov dword [esp + 0x2c], esi
mov eax, dword [esp + 0xa0]
add eax, 0xfffffff0
push eax
mov byte [esp + 0x8c], 0xc
call fcn.004ac040
add eax, 0x10
add esp, 8
mov dword [esp + 0xa8], eax
push 0x4a4340
push 0x4a4334
lea ecx, [esp + 0xb0]
mov byte [esp + 0x8c], 0xd
call fcn.004ace40
push 0x4a4320
push 0x4a4314
lea ecx, [esp + 0xb0]
call fcn.004ace40
push 0x4a4314
push 0x4a4340
lea ecx, [esp + 0xb0]
call fcn.004ace40
push 0x4a4334
push 0x4a4320
lea ecx, [esp + 0xb0]
call fcn.004ace40
mov eax, dword [esp + 0xa8]
mov ecx, dword [esp + 0x18]
push eax
push esi
push ecx
push ebx
push edi
lea edx, [esp + 0x2c]
push 0x4a4250
push edx
call fcn.004ac300
mov eax, dword [esp + 0x34]
push esi
push eax
lea ecx, [esp + 0x44]
push 0x4a4214
push ecx
call fcn.004ac300
mov ebx, dword [esp + 0xd0]
add esp, 0x2c
mov ecx, ebx
call fcn.004b4540
mov eax, dword [esp + 0x20]
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x98], esp
mov esi, esp
push eax
mov dword [esp + 0x2c], eax
call fcn.004ac040
add esp, 4
lea edx, [esp + 0x98]
add eax, 0x10
push edx
mov ecx, ebp
mov dword [esi], eax
call fcn.004ed990
mov eax, dword [eax]
mov ecx, dword [esp + 0x14]
cmp ecx, eax
je 0x4eeeb7
mov esi, ecx
mov ecx, eax
mov dword [esp + 0x14], ecx
test eax, eax
je 0x4eeea7
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
push eax
call edx
mov ecx, dword [esp + 0x14]
test esi, esi
je 0x4eeeb7
mov eax, dword [esi]
mov ecx, dword [eax + 8]
push esi
call ecx
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x94]
test eax, eax
je 0x4eeece
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
mov ecx, dword [esp + 0x14]
test ecx, ecx
jne 0x4eeedc
push 0x80004003
call 0x538270
mov edx, dword [ecx]
lea eax, [esp + 0x94]
push eax
mov esi, ecx
push ecx
mov ecx, dword [edx + 0x68]
call ecx
test eax, eax
jge 0x4eeefe
push 0x4a3d80
push esi
push eax
call 0x538290
cmp dword [esp + 0x94], 0
jne 0x4ef0c2
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x4eef1e
push 0x80004003
call 0x538270
mov edx, dword [eax]
mov esi, eax
push eax
mov eax, dword [edx + 0x80]
call eax
test eax, eax
jge 0x4eef3b
push 0x4a3d80
push esi
push eax
call 0x538290
mov eax, dword [esp + 0xa8]
add eax, 0xfffffff0
mov byte [esp + 0x84], 0xc
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4eef66
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
mov byte [esp + 0x84], 8
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4eef8e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x14]
mov byte [esp + 0x84], 6
test eax, eax
je 0x4eefa6
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
lea ecx, [esp + 0x60]
mov byte [esp + 0x84], 5
mov dword [esp + 0x60], 0x497d7c
call fcn.004b4540
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
mov byte [esp + 0x84], 4
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4eefe7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x24]
mov byte [esp + 0x84], 3
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4ef00c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x8c]
add eax, 0xfffffff0
mov byte [esp + 0x84], 2
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4ef037
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x90]
add eax, 0xfffffff0
mov byte [esp + 0x84], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4ef062
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x9c]
add eax, 0xfffffff0
mov byte [esp + 0x84], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4ef08d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0xa0]
add eax, 0xfffffff0
mov dword [esp + 0x84], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4ef0bb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor al, al
jmp 0x4ef544
lea ecx, [esp + 0x30]
push ecx
call dword [fcn.00497418]
mov eax, dword [esp + 0x14]
mov byte [esp + 0x84], 0xe
test eax, eax
je 0x4ef380
mov edi, dword [0x49740c]
mov ebp, 1
mov edx, dword [eax]
mov edx, dword [edx + 0x50]
lea ecx, [esp + 0x94]
push ecx
push eax
mov esi, eax
mov dword [esp + 0x9c], 0
call edx
test eax, eax
jge 0x4ef119
push 0x4a3d80
push esi
push eax
call 0x538290
cmp word [esp + 0x94], 0
jne 0x4ef390
mov eax, dword [esp + 0x64]
mov ecx, eax
test eax, eax
je 0x4ef34b
jmp 0x4ef147
mov ecx, dword [esp + 0x94]
mov eax, ecx
mov esi, dword [eax + 8]
mov ecx, dword [ecx]
mov edx, 8
push esi
mov dword [esp + 0x98], ecx
mov word [esp + 0x44], dx
call dword [0x4973f8]
mov dword [esp + 0x48], eax
test eax, eax
jne 0x4ef176
test esi, esi
jne 0x4eebb0
mov ecx, dword [esp + 0x14]
mov byte [esp + 0x84], 0xf
test ecx, ecx
je 0x4eebca
lea eax, [esp + 0x40]
push eax
lea edx, [esp + 0x54]
push edx
call fcn.004ec7d0
push eax
lea eax, [esp + 0x34]
push eax
mov byte [esp + 0x8c], 0x10
call dword [0x49741c]
test eax, eax
jl 0x4ef38a
lea ecx, [esp + 0x50]
push ecx
call edi
lea edx, [esp + 0x40]
push edx
mov byte [esp + 0x88], 0xe
call edi
cmp word [esp + 0x30], bp
je 0x4ef1fd
lea eax, [esp + 0x30]
push eax
lea ecx, [esp + 0xb0]
call fcn.004ecbd0
mov eax, dword [eax]
or dword [esp + 0x1c], ebp
mov byte [esp + 0x84], 0x11
test eax, eax
je 0x4ef1f9
mov eax, dword [eax]
jmp 0x4ef202
xor eax, eax
jmp 0x4ef202
mov eax, 0x497b94
push eax
lea ecx, [esp + 0x9c]
call fcn.004ad7f0
mov ecx, dword [ebx + 8]
push 0
push ecx
mov ecx, ebx
mov dword [esp + 0x8c], 0x12
call fcn.004acb40
mov ecx, dword [esp + 0x98]
mov edi, eax
mov esi, dword [edi + 8]
lea ebp, [edi + 8]
lea eax, [ecx - 0x10]
sub esi, 0x10
cmp eax, esi
je 0x4ef291
cmp dword [esi + 0xc], 0
lea ebx, [esi + 0xc]
jl 0x4ef27e
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x4ef27e
push eax
call fcn.004ac040
mov dword [esp + 0x30], eax
add esp, 4
or eax, 0xffffffff
lock xadd dword [ebx], eax
dec eax
test eax, eax
jg 0x4ef272
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
mov ecx, dword [esp + 0x2c]
add ecx, 0x10
mov dword [ebp], ecx
jmp 0x4ef28a
mov eax, dword [ecx - 0xc]
push eax
push ecx
mov ecx, ebp
call fcn.004ac150
mov ebx, dword [esp + 0xa4]
mov eax, dword [ebx + 8]
test eax, eax
je 0x4ef29c
mov dword [eax], edi
jmp 0x4ef29f
mov dword [ebx + 4], edi
mov eax, dword [esp + 0x98]
add eax, 0xfffffff0
mov dword [ebx + 8], edi
mov byte [esp + 0x84], 0x11
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4ef2cd
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test byte [esp + 0x1c], 1
mov dword [esp + 0x84], 0xe
je 0x4ef332
mov esi, dword [esp + 0xac]
and dword [esp + 0x1c], 0xfffffffe
test esi, esi
je 0x4ef332
lea ecx, [esi + 8]
push ecx
call dword [0x4973bc]
test eax, eax
jne 0x4ef327
test esi, esi
je 0x4ef327
mov eax, dword [esi]
test eax, eax
je 0x4ef30e
push eax
call dword [0x4973fc]
mov eax, dword [esi + 4]
test eax, eax
je 0x4ef31e
push eax
call 0x4f38d2
add esp, 4
push esi
call 0x4f38d2
add esp, 4
mov dword [esp + 0xac], 0
cmp dword [esp + 0x94], 0
mov edi, dword [0x49740c]
mov ebp, 1
jne 0x4ef140
mov eax, dword [esp + 0x14]
test eax, eax
je 0x4eebca
mov edx, dword [eax]
mov esi, eax
push eax
mov eax, dword [edx + 0x90]
call eax
test eax, eax
jge 0x4ef374
push 0x4a3d80
push esi
push eax
call 0x538290
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x4ef0ec
push 0x80004003
call 0x538270
push eax
call 0x538270
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x4ef3a2
push 0x80004003
call 0x538270
mov ecx, dword [eax]
mov edx, dword [ecx + 0x80]
push eax
mov esi, eax
call edx
test eax, eax
jge 0x4ef3bf
push 0x4a3d80
push esi
push eax
call 0x538290
lea eax, [esp + 0x30]
push eax
call edi
mov eax, dword [esp + 0xa8]
add eax, 0xfffffff0
mov byte [esp + 0x84], 0xc
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4ef3f1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
mov byte [esp + 0x84], 8
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4ef419
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x14]
mov byte [esp + 0x84], 6
test eax, eax
je 0x4ef431
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
lea ecx, [esp + 0x60]
mov byte [esp + 0x84], 5
mov dword [esp + 0x60], 0x497d7c
call fcn.004b4540
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
mov byte [esp + 0x84], 4
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4ef472
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x24]
mov byte [esp + 0x84], 3
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4ef497
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x8c]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
mov byte [esp + 0x84], 2
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4ef4c2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x90]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
mov byte [esp + 0x84], 1
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4ef4ed
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x9c]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
mov byte [esp + 0x84], 0
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4ef518
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0xa0]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
mov dword [esp + 0x84], edx
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4ef542
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov al, 1
mov ecx, dword [esp + 0x7c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x74
ret 0x24