Function at 0x4c9f70
Capabilities:
Get number of processors

Disassembly:
push 0xffffffffffffffff
push 0x50021c
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x20
push ebx
push ebp
push esi
push edi
mov ecx, dword [0xcecfe8]
mov eax, dword [0x55715c]
cmp ecx, eax
mov dword [esp + 0x38], 1
mov dword [esp + 0x10], 0xffffffff
mov dword [esp + 0x18], 0
jge 0x4ca01b
mov edx, 0x12
cmp ecx, edx
jge 0x4c9fcf
mov edi, dword [esp + 0x50]
lea esi, [eax - 0x12]
cmp edi, esi
jle 0x4c9fcf
mov esi, edi
sub esi, eax
mov dword [esp + 0x50], esi
lea esi, [eax - 0x12]
cmp ecx, esi
jl 0x4c9fe4
mov ecx, dword [esp + 0x50]
cmp ecx, edx
jg 0x4c9fe4
add ecx, eax
mov dword [esp + 0x50], ecx
mov ecx, dword [0xcecfe4]
mov eax, dword [0x557160]
cmp ecx, edx
jge 0x4ca006
mov edi, dword [esp + 0x54]
lea esi, [eax - 0x12]
cmp edi, esi
jle 0x4ca006
mov esi, edi
sub esi, eax
mov dword [esp + 0x54], esi
lea esi, [eax - 0x12]
cmp ecx, esi
jl 0x4ca01b
mov ecx, dword [esp + 0x54]
cmp ecx, edx
jg 0x4ca01b
add ecx, eax
mov dword [esp + 0x54], ecx
mov eax, dword [esp + 0x44]
cmp ax, 0x4000
jb 0x4ca03c
and eax, 0xffff
sub eax, 0x4000
mov dword [esp + 0x10], eax
mov eax, 1
mov dword [esp + 0x44], eax
mov esi, dword [0xcf3ea4]
mov edi, dword [esp + 0x60]
mov ebx, dword [esp + 0x5c]
mov ebp, dword [esp + 0x40]
test esi, esi
je 0x4ca05a
cmp ebp, dword [esi + 0x80]
je 0x4ca078
mov esi, dword [0xcf3ed4]
test esi, esi
je 0x4ca080
cmp dword [esi + 0x80], ebp
je 0x4ca078
mov esi, dword [esi + 0x88]
test esi, esi
jne 0x4ca064
jmp 0x4ca080
test esi, esi
jne 0x4ca410
test ebp, 0x40000000
je 0x4ca274
cmp ax, 0x2006
jne 0x4ca0c7
push 0x12c
call fcn.004ed8ee
add esp, 4
mov dword [esp + 0x60], eax
test eax, eax
mov byte [esp + 0x38], 2
je 0x4ca152
push 0x2006
push ebp
mov ecx, eax
call fcn.004c7f00
mov byte [esp + 0x38], 1
jmp 0x4ca16b
mov edx, dword [0xcf3f10]
and eax, 0xffff
lea ecx, [eax + eax*4]
mov ecx, dword [edx + ecx*8]
test ecx, 0x100000
je 0x4ca115
push 0xbc
call fcn.004ed8ee
add esp, 4
mov dword [esp + 0x60], eax
test eax, eax
mov byte [esp + 0x38], 3
je 0x4ca152
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x44]
push 1
push ecx
push edx
push ebp
mov ecx, eax
call fcn.004c7b30
mov byte [esp + 0x38], 1
jmp 0x4ca16b
test ecx, 0x200000
je 0x4ca15b
push 0xc4
call fcn.004ed8ee
add esp, 4
mov dword [esp + 0x60], eax
test eax, eax
mov byte [esp + 0x38], 4
je 0x4ca152
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x44]
push 1
push ecx
push edx
push ebp
mov ecx, eax
call fcn.004c77a0
mov byte [esp + 0x38], 1
jmp 0x4ca16b
xor eax, eax
mov byte [esp + 0x38], 1
jmp 0x4ca16b
movsx ecx, byte [esp + 0x48]
push ecx
push eax
push ebp
call fcn.004c4c20
add esp, 0xc
mov ebp, edi
mov esi, eax
and ebp, 0xffff
mov edx, ebp
mov ecx, ebp
mov eax, ebp
and edx, 0x8000
and ecx, 0x4000
and eax, 0x3fff
mov byte [esi + 0x76], bl
jne 0x4ca195
mov eax, edx
jmp 0x4ca1ad
test eax, eax
jl 0x4ca1a6
cmp eax, 0xbb8
jge 0x4ca1a6
or eax, ecx
or eax, edx
jmp 0x4ca1ad
or ecx, edx
or ecx, 1
mov eax, ecx
mov word [esi + 0x44], ax
mov ecx, dword [0x636ac8]
test ecx, ecx
je 0x4ca214
mov dx, word [esi + 0x3c]
lea eax, [esp + 0x60]
add dx, 0x4000
push eax
mov dword [esp + 0x64], edx
lea edx, [esp + 0x1c]
push edx
call fcn.0040b280
mov eax, dword [esp + 0x18]
test eax, eax
je 0x4ca214
cmp word [esi + 0x44], 0
jne 0x4ca214
mov ax, word [esi + 0x3c]
lea ecx, [esp + 0x60]
lea edx, [esp + 0x18]
add ax, 0x4000
push ecx
mov ecx, dword [0x636ac8]
push edx
mov dword [esp + 0x68], eax
call fcn.0040b280
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 0x14]
mov word [esi + 0x46], cx
jmp 0x4ca24b
mov ecx, ebp
mov eax, ebp
and ecx, 0x8000
and eax, 0x4000
and ebp, 0x3fff
jne 0x4ca22f
mov eax, ecx
jmp 0x4ca247
test ebp, ebp
jl 0x4ca243
cmp ebp, 0xbb8
jge 0x4ca243
or ebp, eax
or ebp, ecx
mov eax, ebp
jmp 0x4ca247
or eax, ecx
or al, 1
mov word [esi + 0x46], ax
mov eax, dword [esp + 0x64]
mov dx, word [esp + 0x4c]
and eax, 0xff
mov word [esi + 0x42], dx
push eax
push esi
call fcn.004c5930
add esp, 8
mov dword [esp + 0x18], 1
jmp 0x4ca454
push 0x1e8
call fcn.004ed8ee
add esp, 4
mov dword [esp + 0x60], eax
test eax, eax
mov byte [esp + 0x38], 5
je 0x4ca2a4
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x44]
push ecx
push edx
push ebp
mov ecx, eax
call fcn.004c82d0
mov esi, eax
jmp 0x4ca2a6
xor esi, esi
xor eax, eax
mov ecx, ebx
mov dword [esi + 0x190], eax
mov dword [esi + 0x194], eax
and ecx, 0xff
mov al, bl
mov ebp, edi
and al, 0x7f
shr ecx, 7
and ebp, 0xffff
mov dword [esi + 0x14c], ecx
mov byte [esi + 0x76], al
mov edx, ebp
mov ecx, ebp
mov eax, ebp
and edx, 0x8000
and ecx, 0x4000
and eax, 0x3fff
mov byte [esp + 0x38], 1
jne 0x4ca2f6
mov eax, edx
jmp 0x4ca30e
test eax, eax
jl 0x4ca307
cmp eax, 0xbb8
jge 0x4ca307
or eax, ecx
or eax, edx
jmp 0x4ca30e
or ecx, edx
or ecx, 1
mov eax, ecx
mov word [esi + 0x44], ax
mov ecx, dword [0x636ac8]
test ecx, ecx
je 0x4ca375
mov dx, word [esi + 0x3c]
lea eax, [esp + 0x60]
add dx, 0x4000
push eax
mov dword [esp + 0x64], edx
lea edx, [esp + 0x2c]
push edx
call fcn.0040b280
mov eax, dword [esp + 0x28]
test eax, eax
je 0x4ca375
cmp word [esi + 0x44], 0
jne 0x4ca375
mov ax, word [esi + 0x3c]
lea ecx, [esp + 0x60]
lea edx, [esp + 0x28]
add ax, 0x4000
push ecx
mov ecx, dword [0x636ac8]
push edx
mov dword [esp + 0x68], eax
call fcn.0040b280
mov eax, dword [esp + 0x28]
mov ecx, dword [eax + 0x14]
mov word [esi + 0x46], cx
jmp 0x4ca3ac
mov ecx, ebp
mov eax, ebp
and ecx, 0x8000
and eax, 0x4000
and ebp, 0x3fff
jne 0x4ca390
mov eax, ecx
jmp 0x4ca3a8
test ebp, ebp
jl 0x4ca3a4
cmp ebp, 0xbb8
jge 0x4ca3a4
or ebp, eax
or ebp, ecx
mov eax, ebp
jmp 0x4ca3a8
or eax, ecx
or al, 1
mov word [esi + 0x46], ax
mov ax, word [esp + 0x54]
mov dx, word [esp + 0x50]
mov word [esp + 0x22], ax
mov al, byte [esp + 0x58]
mov word [esp + 0x20], dx
sub esp, 8
movsx cx, al
movsx edx, al
mov word [esp + 0x2c], cx
mov eax, dword [esi]
mov dword [esi + 0x198], edx
mov edx, dword [esp + 0x28]
mov ecx, esp
mov dword [ecx], edx
mov dx, word [esp + 0x2c]
mov word [ecx + 4], dx
mov ecx, esi
call dword [eax + 0x60]
mov eax, dword [esp + 0x64]
and eax, 0xff
push eax
push esi
call fcn.004c5930
add esp, 8
mov dword [esi + 0x150], 0
jmp 0x4ca454
mov ecx, dword [esi + 4]
push 0xb3e
push str.C:projectsuobuild2D3_0_2client_src_shared_baseobjects.cxx
push ecx
push esi
call fcn.004b9fb0
add esp, 0x10
test al, al
jne 0x4ca438
push str.CObjectManager::HandleMove:_either_pointer_pObj_is_not_valid__or_the_data_it_points_to_is_not_valid._the_program_may_crash__n
call fcn.004de190
add esp, 4
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x24]
test eax, eax
jne 0x4ca454
mov eax, dword [esi + 0x9c]
test eax, eax
jne 0x4ca454
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x50]
xor ebp, ebp
cmp esi, ebp
je 0x4ca45f
mov eax, dword [esi + 4]
jmp 0x4ca464
mov eax, 0xfeedbeef
push 0xb4e
push str.C:projectsuobuild2D3_0_2client_src_shared_baseobjects.cxx
push eax
push esi
call fcn.004b9fb0
add esp, 0x10
test al, al
jne 0x4ca489
push str.CObjectManager::HandleMove:_either_pointer_pObj_is_not_valid__or_the_data_it_points_to_is_not_valid._the_program_may_crash__n
call fcn.004de190
add esp, 4
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x24]
test eax, eax
jne 0x4ca69c
mov ax, word [esp + 0x50]
mov cx, word [esp + 0x54]
movsx dx, byte [esp + 0x58]
mov word [esp + 0x20], ax
mov al, byte [esp + 0x48]
mov word [esp + 0x22], cx
mov cx, word [esp + 0x4c]
mov word [esp + 0x24], dx
mov byte [esi + 0x40], al
mov eax, dword [esp + 0x64]
mov byte [esi + 0x76], bl
and eax, 0xff
mov word [esi + 0x42], cx
push eax
push esi
call fcn.004c5930
and edi, 0xffff
add esp, 8
mov eax, edi
mov edx, edi
mov ecx, edi
and eax, 0x8000
and edx, 0x4000
and ecx, 0x3fff
je 0x4ca512
test ecx, ecx
jl 0x4ca50e
cmp ecx, 0xbb8
jge 0x4ca50e
or eax, ecx
or eax, edx
jmp 0x4ca512
or eax, edx
or al, 1
mov word [esi + 0x44], ax
mov eax, dword [esp + 0x10]
cmp eax, 0xffffffff
jne 0x4ca5c9
mov eax, dword [esp + 0x44]
and eax, 0x3fff
mov word [esi + 0x3c], ax
mov ecx, dword [0x636ac8]
test ecx, ecx
mov dword [esp + 0x58], eax
je 0x4ca587
mov edx, dword [esp + 0x44]
mov ebx, dword [ecx + 8]
lea ebp, [edx + 0x4000]
mov edx, dword [ecx + 4]
mov eax, ebp
sub ebx, edx
and eax, 0xffff
sar ebx, 2
and eax, 0x80000007
jns 0x4ca566
dec eax
or eax, 0xfffffff8
inc eax
shl eax, 0xa
xor edx, edx
div ebx
mov eax, dword [ecx + 4]
mov edx, dword [eax + edx*4]
test edx, edx
je 0x4ca583
cmp word [edx + 4], bp
je 0x4ca5a8
mov edx, dword [edx]
test edx, edx
jne 0x4ca577
mov eax, dword [esp + 0x58]
sub esp, 8
mov word [esi + 0x3e], ax
mov ecx, dword [esp + 0x28]
mov edx, dword [esi]
mov eax, esp
mov dword [eax], ecx
mov cx, word [esp + 0x2c]
mov word [eax + 4], cx
mov ecx, esi
call dword [edx + 0x60]
jmp 0x4ca5d8
test edx, edx
je 0x4ca583
mov eax, dword [esp + 0x44]
push 0
and eax, 0xffff
add eax, 0x4000
push eax
call fcn.00411c60
and eax, 0x3fff
jmp 0x4ca587
lea edx, [esp + 0x20]
push eax
push edx
push esi
call fcn.004c4800
add esp, 0xc
mov ecx, dword [0x636ac8]
test ecx, ecx
je 0x4ca626
mov bp, word [esi + 0x3c]
mov ebx, dword [ecx + 8]
mov edx, dword [ecx + 4]
add bp, 0x4000
mov eax, ebp
sub ebx, edx
and eax, 0xffff
sar ebx, 2
and eax, 0x80000007
jns 0x4ca609
dec eax
or eax, 0xfffffff8
inc eax
shl eax, 0xa
xor edx, edx
div ebx
mov eax, dword [ecx + 4]
mov edx, dword [eax + edx*4]
test edx, edx
je 0x4ca626
cmp word [edx + 4], bp
je 0x4ca658
mov edx, dword [edx]
test edx, edx
jne 0x4ca61a
mov eax, edi
mov ecx, edi
and eax, 0x8000
and ecx, 0x4000
and edi, 0x3fff
je 0x4ca693
test edi, edi
jl 0x4ca68f
cmp edi, 0xbb8
jge 0x4ca68f
or edi, eax
or edi, ecx
mov eax, edi
mov word [esi + 0x46], ax
jmp 0x4cab4e
test edx, edx
je 0x4ca626
cmp word [esi + 0x44], 0
jne 0x4ca626
mov dx, word [esi + 0x3c]
lea eax, [esp + 0x58]
add dx, 0x4000
push eax
mov dword [esp + 0x5c], edx
lea edx, [esp + 0x2c]
push edx
call fcn.0040b280
mov eax, dword [esp + 0x28]
mov ecx, dword [eax + 0x14]
mov word [esi + 0x46], cx
jmp 0x4cab4e
or eax, ecx
or al, 1
mov word [esi + 0x46], ax
jmp 0x4cab4e
mov eax, dword [esi + 0x18c]
mov edx, dword [0xcf3930]
cmp eax, 4
mov dword [esi + 0x154], edx
jne 0x4ca891
mov eax, dword [esi + 0x20]
mov dword [esp + 0x4c], ebp
cmp eax, ebp
je 0x4ca6d1
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x14]
mov dword [esp + 0x4c], 1
movsx ax, byte [esp + 0x58]
mov cx, word [esp + 0x50]
mov dx, word [esp + 0x54]
mov ebp, dword [esp + 0x44]
and edi, 0xffff
mov word [esi + 0x24], cx
mov word [esi + 0x26], dx
mov word [esi + 0x28], ax
mov edx, edi
mov ecx, edi
mov eax, edi
and ebp, 0x3fff
and bl, 0x7f
and edx, 0x8000
and ecx, 0x4000
and eax, 0x3fff
mov dword [esi + 0x144], 1
mov word [esi + 0x3c], bp
mov byte [esi + 0x76], bl
jne 0x4ca72e
mov eax, edx
jmp 0x4ca746
test eax, eax
jl 0x4ca73f
cmp eax, 0xbb8
jge 0x4ca73f
or eax, ecx
or eax, edx
jmp 0x4ca746
or ecx, edx
or ecx, 1
mov eax, ecx
mov word [esi + 0x44], ax
mov dword [esi + 0x18c], 0
mov ecx, dword [0x636ac8]
test ecx, ecx
je 0x4ca7a9
mov edx, dword [esp + 0x44]
mov ebx, dword [ecx + 8]
lea eax, [edx + 0x4000]
mov edx, dword [ecx + 4]
mov dword [esp + 0x58], eax
sub ebx, edx
and eax, 0xffff
sar ebx, 2
and eax, 0x80000007
jns 0x4ca788
dec eax
or eax, 0xfffffff8
inc eax
shl eax, 0xa
xor edx, edx
div ebx
mov eax, dword [ecx + 4]
mov edx, dword [eax + edx*4]
test edx, edx
je 0x4ca7a9
mov ebx, dword [esp + 0x58]
cmp word [edx + 4], bx
je 0x4ca7e0
mov edx, dword [edx]
test edx, edx
jne 0x4ca79d
mov word [esi + 0x3e], bp
mov eax, edi
mov ecx, edi
and eax, 0x8000
and ecx, 0x4000
and edi, 0x3fff
je 0x4ca858
test edi, edi
jl 0x4ca854
cmp edi, 0xbb8
jge 0x4ca854
or edi, eax
or edi, ecx
mov eax, edi
jmp 0x4ca858
test edx, edx
je 0x4ca7a9
mov eax, dword [esp + 0x44]
push 0
and eax, 0xffff
add eax, 0x4000
push eax
call fcn.00411c60
and eax, 0x3fff
cmp word [esi + 0x44], 0
mov word [esi + 0x3e], ax
jne 0x4ca7ad
mov ecx, dword [0x636ac8]
mov eax, ebx
and eax, 0xffff
mov edi, dword [ecx + 8]
mov edx, dword [ecx + 4]
sub edi, edx
sar edi, 2
and eax, 0x80000007
jns 0x4ca82e
dec eax
or eax, 0xfffffff8
inc eax
shl eax, 0xa
xor edx, edx
mov ecx, dword [ecx + 4]
div edi
mov edx, dword [ecx + edx*4]
test edx, edx
je 0x4ca84b
cmp word [edx + 4], bx
je 0x4ca84b
mov edx, dword [edx]
test edx, edx
jne 0x4ca83f
mov edx, dword [edx + 0x14]
mov word [esi + 0x46], dx
jmp 0x4ca85c
or eax, ecx
or al, 1
mov word [esi + 0x46], ax
mov eax, dword [esp + 0x64]
and eax, 0xff
push eax
push esi
call fcn.004c5930
mov eax, dword [esp + 0x54]
add esp, 8
test eax, eax
mov dword [esi + 0x150], 0
je 0x4caa12
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x10]
jmp 0x4caa12
cmp dword [esi + 0x150], ebp
je 0x4ca8ba
cmp dword [esi + 0x20], ebp
je 0x4ca8b4
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x14]
mov eax, dword [esi]
mov ecx, esi
mov dword [esi + 0x150], ebp
call dword [eax + 0x10]
jmp 0x4ca8ba
mov dword [esi + 0x150], ebp
mov eax, dword [esi + 0x18c]
cmp eax, ebp
jne 0x4ca93a
movsx ecx, word [esi + 0x24]
mov edi, dword [esp + 0x50]
cmp ecx, edi
jne 0x4ca994
movsx edx, word [esi + 0x26]
cmp edx, dword [esp + 0x54]
jne 0x4ca994
movsx cx, byte [esp + 0x58]
cmp word [esi + 0x28], cx
jne 0x4ca994
mov dl, byte [esi + 0x76]
xor dl, bl
test dl, 0x7f
jne 0x4ca994
mov edx, dword [esi + 0x14c]
xor ecx, ecx
cmp edx, ebp
mov edx, ebx
setne cl
and edx, 0xff
shr edx, 7
cmp ecx, edx
jne 0x4ca994
mov cx, word [esi + 0x3c]
cmp cx, word [esp + 0x44]
jne 0x4ca994
mov dl, byte [esp + 0x64]
mov cl, byte [esi + 0xa0]
cmp cl, dl
jne 0x4ca994
jmp 0x4caa12
lea ecx, [eax + eax*4]
mov edi, dword [esp + 0x50]
movsx edx, word [esi + ecx*2 + 0x152]
lea ecx, [esi + ecx*2]
cmp edx, edi
jne 0x4ca994
mov ebp, dword [esp + 0x54]
lea edx, [eax + eax*4 + 0xaa]
movsx edx, word [esi + edx*2]
cmp edx, ebp
jne 0x4ca994
movsx dx, byte [esp + 0x58]
cmp word [ecx + 0x156], dx
jne 0x4ca994
cmp byte [ecx + 0x15a], bl
jne 0x4ca994
mov dx, word [ecx + 0x158]
cmp dx, word [esp + 0x44]
jne 0x4ca994
mov dl, byte [esp + 0x64]
cmp byte [ecx + 0x15b], dl
je 0x4caa12
lea eax, [eax + eax*4]
mov dx, word [esp + 0x54]
mov word [esi + eax*2 + 0x15c], di
mov eax, dword [esi + 0x18c]
add eax, 0x23
lea ecx, [eax + eax*4]
mov word [esi + ecx*2], dx
mov eax, dword [esi + 0x18c]
movsx cx, byte [esp + 0x58]
lea edx, [eax + eax*4]
mov word [esi + edx*2 + 0x160], cx
mov eax, dword [esi + 0x18c]
mov dx, word [esp + 0x44]
lea eax, [eax + eax*4]
mov byte [esi + eax*2 + 0x164], bl
mov eax, dword [esi + 0x18c]
lea ecx, [eax + eax*4]
mov word [esi + ecx*2 + 0x162], dx
mov eax, dword [esi + 0x18c]
mov cl, byte [esp + 0x64]
lea eax, [eax + eax*4]
mov byte [esi + eax*2 + 0x165], cl
mov eax, dword [esi + 0x18c]
inc eax
mov dword [esi + 0x18c], eax
mov eax, dword [0xcf3ea4]
mov ecx, dword [eax + 0x210]
test ecx, ecx
je 0x4cab4e
mov edx, dword [esi + 0x80]
mov ecx, dword [eax + 0x218]
cmp edx, ecx
jne 0x4cab4e
mov eax, dword [esi]
push 3
mov ecx, esi
call dword [eax + 0x58]
test eax, eax
jne 0x4cab4e
mov eax, dword [esi + 0x18c]
test eax, eax
jle 0x4caa6f
lea ecx, [eax + eax*4]
lea edx, [esi + ecx*2 + 0x152]
mov eax, dword [esi + ecx*2 + 0x152]
mov dword [esp + 0x10], eax
mov di, word [edx + 4]
jmp 0x4caa7d
lea ecx, [esi + 0x24]
mov edx, dword [esi + 0x24]
mov dword [esp + 0x10], edx
mov di, word [ecx + 4]
mov eax, dword [0xcf7ea0]
mov word [esp + 0x14], di
test eax, eax
je 0x4caa90
call fcn.004cefc0
movsx ecx, word [esp + 0x12]
movsx edx, word [esp + 0x10]
movsx eax, di
push 1
push 0x64
push eax
mov eax, dword [0xcf3ea4]
push ecx
push edx
movsx ecx, word [eax + 0x28]
movsx edx, word [eax + 0x26]
movsx eax, word [eax + 0x24]
push ecx
push edx
push eax
call fcn.004cf000
add esp, 0x20
mov dword [0xcf7ea8], eax
test eax, eax
jne 0x4caaf6
push str.Cant_get_there__follow_
push 3
push eax
call fcn.004d6120
add esp, 0xc
mov dword [0xcf7ea0], 0
mov ecx, dword [esp + 0x30]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2c
ret
mov dword [0xcf7ea0], 1
mov edi, eax
call fcn.0047bae0
mov eax, dword [edi + 0x24]
test eax, eax
je 0x4cab17
mov edi, eax
mov eax, dword [edi + 0x24]
test eax, eax
jne 0x4cab0e
mov dword [0xcf7ea8], edi
mov ecx, dword [edi + 0x10]
mov dword [0xcf7e9c], ecx
mov edx, dword [edi + 0x14]
mov dword [0xcf7e98], edx
mov eax, dword [edi + 0x18]
mov edx, dword [0xcf3ea4]
xor ecx, ecx
mov dword [0xcf7e94], eax
mov cl, byte [edx + 0x76]
mov dword [0xcf7ea4], edi
mov dword [0xcf7e90], ecx
cmp dword [esp + 0x18], 1
jne 0x4cab5e
push esi
call fcn.004cc190
add esp, 4
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x5c]
test eax, eax
jne 0x4cab7b
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x7c]
test eax, eax
jne 0x4cab7b
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov ecx, dword [esp + 0x30]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x2c
ret