Function at 0x4f5600
Capabilities:
Get number of processors
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x5ce0d1
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xe8
mov eax, dword [0x692f04]
push ebx
mov ebx, dword [ebp + 8]
push esi
xor esi, esi
push edi
mov dword [esp + 0x10], eax
mov dword [esp + 0x30], vtable.CFile.0
mov dword [esp + 0x70], esi
mov dword [esp + 0x50], esi
mov dword [esp + 0x54], esi
mov eax, ebx
mov dword [esp + 0xfc], esi
call fcn.004f38a0
mov edi, ebx
call fcn.004f35c0
mov ecx, dword [ebx + 0x64]
cmp ecx, dword [ebx + 0x68]
jne 0x4f593b
mov edx, dword [ebx + 0x84]
cmp edx, dword [ebx + 0x88]
jne 0x4f593b
push 0xc
push str.__GLOBAL.bin
lea ecx, [esp + 0x94]
mov dword [esp + 0xa8], 0xf
mov dword [esp + 0xa4], esi
mov byte [esp + 0x94], 0
call fcn.00401430
push esi
lea eax, [esp + 0x90]
mov byte [esp + 0x100], 1
mov ecx, dword [esp + 0x14]
push eax
push ecx
lea edx, [esp + 0x3c]
push edx
call fcn.004f8740
mov byte [esp + 0xfc], 0
cmp dword [esp + 0xa0], 0x10
mov byte [esp + 0x2f], al
jb 0x4f56ec
mov eax, dword [esp + 0x8c]
push eax
call fcn.0048f06d
add esp, 4
cmp byte [esp + 0x2f], 0
je 0x4f593b
lea ecx, [esp + 0x28]
push ecx
mov eax, 4
lea esi, [esp + 0x34]
mov dword [esp + 0x2c], 0
call fcn.004f7fd0
mov edx, dword [esp + 0x28]
push edx
lea esi, [ebx + 0x64]
call fcn.0041aea0
mov edi, dword [esp + 0x28]
lea esi, [ebx + 0x74]
mov eax, edi
call fcn.00446250
test edi, edi
je 0x4f5757
mov eax, edi
xor esi, esi
mov dword [esp + 0xc], eax
lea esp, [esp]
mov edi, dword [ebx + 0x74]
add edi, esi
lea eax, [esp + 0x30]
call fcn.004f88a0
add esi, 0x1c
dec dword [esp + 0xc]
jne 0x4f5740
lea ecx, [esp + 0xc]
push ecx
mov eax, 4
lea esi, [esp + 0x34]
mov dword [esp + 0x10], 0
call fcn.004f7fd0
mov edi, dword [esp + 0xc]
mov eax, edi
lea esi, [ebx + 0x84]
call fcn.00446250
lea esi, [ebx + 0x94]
mov eax, edi
call fcn.00446250
test edi, edi
je 0x4f57ba
xor esi, esi
mov dword [esp + 0xc], edi
lea ebx, [ebx]
mov edi, dword [ebx + 0x94]
add edi, esi
lea eax, [esp + 0x30]
call fcn.004f88a0
add esi, 0x1c
dec dword [esp + 0xc]
jne 0x4f57a0
lea edx, [esp + 0xc]
push edx
mov eax, 4
lea esi, [esp + 0x34]
mov dword [esp + 0x10], 0
call fcn.004f7fd0
mov ecx, dword [ebx + 0xb8]
mov eax, dword [ebx + 0xb4]
lea esi, [ebx + 0xb4]
cmp eax, ecx
je 0x4f5836
mov edx, dword [esp + 0x14]
push edx
push ecx
call fcn.0042eac0
mov ebx, dword [esi + 4]
add esp, 8
mov dword [esp + 0x14], eax
mov edi, eax
cmp eax, ebx
je 0x4f582f
cmp dword [edi + 0x14], 0x10
jb 0x4f5817
mov eax, dword [edi]
push eax
call fcn.0048f06d
add esp, 4
mov dword [edi + 0x14], 0xf
mov dword [edi + 0x10], 0
mov byte [edi], 0
add edi, 0x1c
cmp edi, ebx
jne 0x4f5806
mov eax, dword [esp + 0x14]
mov dword [esi + 4], eax
mov edi, dword [esp + 0xc]
mov eax, edi
call fcn.00446250
test edi, edi
je 0x4f5866
xor ebx, ebx
mov dword [esp + 0xc], edi
jmp 0x4f5850
mov edi, dword [esi]
add edi, ebx
lea eax, [esp + 0x30]
call fcn.004f88a0
add ebx, 0x1c
dec dword [esp + 0xc]
jne 0x4f5850
xor edi, edi
lea ecx, [esp + 0xc]
push ecx
lea eax, [edi + 4]
lea esi, [esp + 0x34]
mov dword [esp + 0x10], edi
call fcn.004f7fd0
mov eax, dword [esp + 0xc]
mov ebx, dword [ebp + 8]
mov dword [ebx + 0x57c], eax
cmp eax, edi
jle 0x4f58d5
lea edi, [ebx + 0xc4]
call fcn.004464e0
mov eax, dword [ebx + 0x57c]
mov edx, dword [edi]
add eax, eax
add eax, eax
add eax, eax
push edx
call fcn.004f7fd0
lea ecx, [ecx]
mov eax, dword [ebx]
mov edx, dword [eax + 4]
mov ecx, ebx
call edx
test eax, eax
jne 0x4f58b0
mov dword [ebx + 0x588], 0xffffffff
mov dword [ebx + 0x584], eax
mov dword [ebx + 0x58c], eax
xor edi, edi
mov eax, dword [esp + 0x70]
dec eax
je 0x4f5922
dec eax
je 0x4f5901
dec eax
jne 0x4f5935
cmp dword [esp + 0x44], edi
je 0x4f58ec
mov dword [esp + 0x44], edi
mov eax, dword [esp + 0x40]
cmp eax, edi
je 0x4f5935
push eax
call dword [0x610120]
mov dword [esp + 0x40], edi
jmp 0x4f5935
cmp byte [esp + 0x80], 0
je 0x4f5935
mov eax, dword [esp + 0x78]
cmp eax, edi
je 0x4f5935
push eax
call fcn.0048fb0c
add esp, 4
mov dword [esp + 0x78], edi
jmp 0x4f5935
mov eax, dword [esp + 0x38]
cmp eax, edi
je 0x4f5935
push eax
call dword [0x6100e8]
mov dword [esp + 0x38], edi
mov dword [esp + 0x70], edi
xor esi, esi
cmp dword [esp + 0x10], esi
je 0x4f59f2
mov eax, dword [ebp + 0xc]
mov ecx, dword [esp + 0x10]
push esi
push eax
push ecx
lea edx, [esp + 0x3c]
push edx
call fcn.004f8740
test al, al
jne 0x4f5abd
mov eax, dword [esp + 0x70]
dec eax
je 0x4f59ca
dec eax
je 0x4f5996
dec eax
jne 0x4f59d9
mov eax, dword [esp + 0x40]
cmp eax, esi
je 0x4f59d9
push eax
call dword [0x610120]
xor al, al
mov ecx, dword [esp + 0xf4]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
cmp byte [esp + 0x80], 0
je 0x4f59d9
mov eax, dword [esp + 0x78]
cmp eax, esi
je 0x4f59d9
push eax
call fcn.0048fb0c
add esp, 4
xor al, al
mov ecx, dword [esp + 0xf4]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov eax, dword [esp + 0x38]
cmp eax, esi
je 0x4f59d9
push eax
call dword [0x6100e8]
xor al, al
mov ecx, dword [esp + 0xf4]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov eax, dword [esp + 0x70]
dec eax
je 0x4f5a3f
dec eax
je 0x4f5a1e
dec eax
jne 0x4f5a4e
cmp dword [esp + 0x44], esi
je 0x4f5a09
mov dword [esp + 0x44], esi
mov eax, dword [esp + 0x40]
cmp eax, esi
je 0x4f5a4e
push eax
call dword [0x610120]
mov dword [esp + 0x40], esi
jmp 0x4f5a4e
cmp byte [esp + 0x80], 0
je 0x4f5a4e
mov eax, dword [esp + 0x78]
cmp eax, esi
je 0x4f5a4e
push eax
call fcn.0048fb0c
add esp, 4
mov dword [esp + 0x78], esi
jmp 0x4f5a4e
mov eax, dword [esp + 0x38]
cmp eax, esi
je 0x4f5a4e
push eax
call dword [0x6100e8]
mov eax, dword [ebp + 0xc]
cmp dword [eax + 0x14], 0x10
mov dword [esp + 0x70], esi
jb 0x4f5a5d
mov eax, dword [eax]
push esi
push 0x80
push 3
push esi
push 1
push 0x80000000
push eax
call dword [0x610138]
mov dword [esp + 0x38], eax
cmp eax, 0xffffffff
je 0x4f59d9
lea ecx, [esp + 0x14]
push ecx
push eax
mov dword [esp + 0x78], 1
call dword [0x610134]
xor ecx, ecx
add eax, esi
adc ecx, dword [esp + 0x14]
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], ecx
mov dword [esp + 0x58], esi
mov dword [esp + 0x5c], esi
mov dword [esp + 0x60], esi
mov dword [esp + 0x64], esi
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], ecx
mov edx, dword [ebp + 0xc]
push 0xffffffffffffffff
xor edi, edi
push edi
push edx
lea ecx, [ebx + 8]
call fcn.00401c50
mov dword [esp + 0x8c], edi
mov dword [esp + 0x90], edi
mov dword [esp + 0x94], edi
lea eax, [esp + 0xc]
push eax
mov byte [esp + 0x100], 2
lea eax, [edi + 4]
lea esi, [esp + 0x34]
mov dword [esp + 0x10], edi
call fcn.004f7fd0
mov esi, dword [esp + 0xc]
cmp esi, edi
jbe 0x4f5b2e
mov eax, esi
lea edi, [esp + 0x8c]
call fcn.004464e0
mov ecx, dword [esp + 0x8c]
lea eax, [esi*8]
push ecx
lea esi, [esp + 0x34]
call fcn.004f7fd0
lea edx, [esp + 0xc]
push edx
mov eax, 4
lea esi, [esp + 0x34]
mov dword [esp + 0x10], 0
call fcn.004f7fd0
mov eax, dword [esp + 0xc]
lea edi, [ebx + 0xc4]
mov dword [ebx + 0x57c], eax
call fcn.004464e0
mov eax, dword [ebx + 0x57c]
test eax, eax
jle 0x4f5b76
mov ecx, dword [edi]
add eax, eax
add eax, eax
add eax, eax
push ecx
call fcn.004f7fd0
mov dword [ebx + 0x580], 0
mov eax, dword [edi + 4]
sub eax, dword [edi]
sar eax, 3
dec eax
js 0x4f5ba7
mov edi, dword [edi]
lea ecx, [edi + eax*8]
cmp dword [ecx], 0x1d
je 0x4f5b9d
sub ecx, 8
dec eax
jns 0x4f5b90
jmp 0x4f5ba7
mov edx, dword [edi + eax*8 + 4]
mov dword [ebx + 0x580], edx
lea eax, [esp + 0xc]
push eax
mov eax, 4
lea esi, [esp + 0x34]
mov dword [esp + 0x10], 0
call fcn.004f7fd0
mov ecx, dword [ebx + 0xb8]
mov eax, dword [ebx + 0xb4]
lea esi, [ebx + 0xb4]
cmp eax, ecx
je 0x4f5c23
mov edx, dword [esp + 0x14]
push edx
push ecx
call fcn.0042eac0
mov ebx, dword [esi + 4]
add esp, 8
mov dword [esp + 0x14], eax
mov edi, eax
cmp eax, ebx
je 0x4f5c1c
cmp dword [edi + 0x14], 0x10
jb 0x4f5c04
mov eax, dword [edi]
push eax
call fcn.0048f06d
add esp, 4
mov dword [edi + 0x14], 0xf
mov dword [edi + 0x10], 0
mov byte [edi], 0
add edi, 0x1c
cmp edi, ebx
jne 0x4f5bf3
mov eax, dword [esp + 0x14]
mov dword [esi + 4], eax
mov edi, dword [esp + 0xc]
mov eax, edi
call fcn.00446250
test edi, edi
je 0x4f5c4e
xor ebx, ebx
mov dword [esp + 0xc], edi
mov edi, dword [esi]
add edi, ebx
lea eax, [esp + 0x30]
call fcn.004f88a0
add ebx, 0x1c
dec dword [esp + 0xc]
jne 0x4f5c38
lea ecx, [esp + 0x10]
push ecx
mov eax, 4
lea esi, [esp + 0x34]
mov dword [esp + 0x14], 0
call fcn.004f7fd0
mov esi, dword [ebp + 8]
mov eax, dword [esi + 0x28]
mov edi, dword [esi + 0x24]
mov ebx, dword [esp + 0x10]
add esi, 0x24
mov dword [esp + 0xc], ebx
cmp edi, eax
je 0x4f5ca4
mov ecx, eax
sub ecx, eax
sar ecx, 2
add ecx, ecx
add ecx, ecx
push ecx
push eax
push edi
mov dword [esp + 0x20], ecx
call fcn.0048f350
mov edx, dword [esp + 0x20]
add esp, 0xc
add edx, edi
mov dword [esi + 4], edx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x38]
add eax, 0x34
mov dword [esp + 0x28], eax
mov eax, dword [eax]
cmp eax, ecx
je 0x4f5d0e
mov edx, dword [esp + 0x14]
push edx
push ecx
call fcn.0042eac0
mov ecx, dword [esp + 0x30]
mov ebx, dword [ecx + 4]
add esp, 8
mov dword [esp + 0x14], eax
mov edi, eax
cmp eax, ebx
je 0x4f5cff
cmp dword [edi + 0x14], 0x10
jb 0x4f5ce7
mov eax, dword [edi]
push eax
call fcn.0048f06d
add esp, 4
mov dword [edi + 0x14], 0xf
mov dword [edi + 0x10], 0
mov byte [edi], 0
add edi, 0x1c
cmp edi, ebx
jne 0x4f5cd6
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x28]
mov ebx, dword [esp + 0x10]
mov dword [eax + 4], edx
mov ecx, dword [esi + 4]
mov edi, dword [esi]
mov eax, ecx
sub eax, edi
sar eax, 2
cmp eax, ebx
jbe 0x4f5d49
lea edi, [edi + ebx*4]
cmp edi, ecx
je 0x4f5db9
mov eax, ecx
sub eax, ecx
sar eax, 2
lea ebx, [eax*4]
push ebx
push ecx
push edi
call fcn.0048f350
add esp, 0xc
add ebx, edi
mov dword [esi + 4], ebx
jmp 0x4f5db9
jae 0x4f5db9
mov ecx, ebx
sub ecx, eax
mov edx, 0x3fffffff
sub edx, ecx
cmp edx, eax
jae 0x4f5d64
push str.vector_T__too_long
call fcn.0047cca5
add eax, ecx
mov ecx, dword [esi + 8]
sub ecx, edi
sar ecx, 2
cmp eax, ecx
jbe 0x4f5d93
mov edx, ecx
shr edx, 1
mov edi, 0x3fffffff
sub edi, edx
cmp edi, ecx
jae 0x4f5d85
xor ecx, ecx
jmp 0x4f5d87
add ecx, edx
cmp ecx, eax
jae 0x4f5d8d
mov ecx, eax
push ecx
call fcn.004095b0
mov edi, dword [esi + 4]
mov eax, edi
sub eax, dword [esi]
mov ecx, ebx
sar eax, 2
sub ecx, eax
je 0x4f5da7
xor eax, eax
rep stosd dword es:[edi], eax
mov eax, dword [esi + 4]
mov ecx, eax
sub ecx, dword [esi]
sar ecx, 2
sub ebx, ecx
lea edx, [eax + ebx*4]
mov dword [esi + 4], edx
mov ebx, dword [esp + 0xc]
mov esi, dword [esp + 0x28]
mov eax, ebx
call fcn.00446250
test ebx, ebx
je 0x4f5de5
xor esi, esi
mov eax, dword [esp + 0x28]
mov edi, dword [eax]
add edi, esi
lea eax, [esp + 0x30]
call fcn.004f88a0
add esi, 0x1c
dec ebx
jne 0x4f5dce
lea ecx, [esp + 0x28]
push ecx
mov eax, 4
lea esi, [esp + 0x34]
mov dword [esp + 0x2c], 0
call fcn.004f7fd0
mov esi, dword [ebp + 8]
mov ecx, dword [esi + 0x48]
mov eax, dword [esi + 0x44]
mov ebx, dword [esp + 0x28]
add esi, 0x44
cmp eax, ecx
je 0x4f5e65
mov edx, dword [esp + 0x14]
push edx
push ecx
call fcn.0042eac0
mov ecx, dword [esi + 4]
add esp, 8
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ecx
mov edi, eax
cmp eax, ecx
je 0x4f5e5e
cmp dword [edi + 0x14], 0x10
jb 0x4f5e44
mov eax, dword [edi]
push eax
call fcn.0048f06d
add esp, 4
mov dword [edi + 0x14], 0xf
mov dword [edi + 0x10], 0
mov byte [edi], 0
add edi, 0x1c
cmp edi, dword [esp + 0x14]
jne 0x4f5e33
mov eax, dword [esp + 0x10]
mov dword [esi + 4], eax
lea eax, [ebx + 4]
call fcn.00446250
mov esi, dword [ebp + 8]
add esi, 0x54
lea eax, [ebx + 4]
call fcn.00446250
test ebx, ebx
je 0x4f5eaa
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], ebx
jmp 0x4f5e90
mov edi, dword [esi]
add edi, dword [esp + 0x10]
lea eax, [esp + 0x30]
call fcn.004f88a0
add dword [esp + 0x10], 0x1c
dec dword [esp + 0x14]
jne 0x4f5e90
mov ecx, dword [esi]
lea edi, [ebx*8]
sub edi, ebx
add edi, edi
push 0x20
add edi, edi
add ecx, edi
push 0x637970
call fcn.00401430
mov ecx, dword [esi]
push 0x17
lea ecx, [edi + ecx + 0x1c]
push 0x637994
call fcn.00401430
mov edi, ebx
lea eax, [edi + 2]
lea edx, [eax*8]
sub edx, eax
mov eax, dword [esi]
push 0x17
lea ecx, [eax + edx*4]
push 0x6379ac
call fcn.00401430
mov edx, dword [esi]
lea eax, [edi + 3]
lea ecx, [eax*8]
sub ecx, eax
push 0x17
lea ecx, [edx + ecx*4]
push 0x6379c4
call fcn.00401430
lea eax, [esp + 0x14]
push eax
mov eax, 4
lea esi, [esp + 0x34]
mov dword [esp + 0x18], 0
call fcn.004f7fd0
mov eax, dword [esp + 0x14]
test eax, eax
je 0x4f5f76
mov edi, dword [ebp + 8]
add edi, 0x12c
mov ebx, eax
lea ecx, [esp + 0xa8]
push ecx
mov eax, 0x44
lea esi, [esp + 0x34]
call fcn.004f7fd0
lea edx, [esp + 0xa8]
push edx
mov eax, edi
call fcn.00448470
push eax
push edi
lea esi, [esp + 0x1c]
call fcn.00447ef0
dec ebx
jne 0x4f5f43
lea eax, [esp + 0x24]
push eax
mov eax, 4
lea esi, [esp + 0x34]
call fcn.004f7fd0
test eax, eax
je 0x4f646b
mov ebx, dword [ebp + 8]
add ebx, 0xec
lea ebx, [ebx]
lea ecx, [esp + 0x14]
push ecx
mov eax, 4
lea esi, [esp + 0x34]
mov dword [esp + 0x18], 0
call fcn.004f7fd0
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x70]
add esi, esi
add esi, esi
add esi, esi
cmp eax, 4
ja case.0x4f5fce.0
jmp dword [eax*4 + 0x4f6544]
mov edx, dword [esp + 0x38]
push 1
push 0
push esi
push edx
call dword [0x61018c]
mov eax, esi
cdq
add dword [esp + 0x58], eax
adc dword [esp + 0x5c], edx
jmp case.0x4f5fce.0
add dword [esp + 0x74], esi
jmp case.0x4f5fce.0
mov ecx, dword [esp + 0x54]
mov eax, esi
cdq
add dword [esp + 0x58], eax
mov eax, dword [esp + 0x5c]
adc eax, edx
mov dword [esp + 0x5c], eax
cmp eax, ecx
jb case.0x4f5fce.0
mov eax, dword [esp + 0x50]
ja 0x4f601d
cmp dword [esp + 0x58], eax
jbe case.0x4f5fce.0
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], ecx
lea eax, [esp + 0x14]
push eax
mov eax, 4
lea esi, [esp + 0x34]
mov dword [esp + 0x18], 0
call fcn.004f7fd0
mov ecx, dword [esp + 0x24]
lea edx, [esp + 0xc]
mov dword [esp + 0xc], ecx
push edx
mov ecx, ebx
call fcn.00446560
mov esi, dword [esp + 0x14]
lea edi, [eax + 0x30]
mov eax, esi
call fcn.004464e0
test esi, esi
je 0x4f608e
mov eax, dword [esp + 0x24]
lea ecx, [esp + 0x14]
push ecx
mov ecx, ebx
mov dword [esp + 0x18], eax
call fcn.00446560
mov edx, dword [eax + 0x30]
lea eax, [esi*8]
push edx
lea esi, [esp + 0x34]
call fcn.004f7fd0
lea eax, [esp + 0x14]
push eax
mov eax, 4
lea esi, [esp + 0x34]
mov dword [esp + 0x18], 0
call fcn.004f7fd0
mov ecx, dword [esp + 0x24]
lea edx, [esp + 0xc]
mov dword [esp + 0xc], ecx
push edx
mov ecx, ebx
call fcn.00446560
mov edi, eax
mov ecx, dword [edi + 0x24]
mov eax, dword [edi + 0x20]
cmp eax, ecx
je 0x4f611a
mov edx, dword [esp + 0x14]
push edx
push ecx
call fcn.0042eac0
mov ecx, dword [edi + 0x24]
add esp, 8
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], ecx
mov esi, eax
cmp eax, ecx
je 0x4f6113
cmp dword [esi + 0x14], 0x10
jb 0x4f60f9
mov eax, dword [esi]
push eax
call fcn.0048f06d
add esp, 4
mov dword [esi + 0x14], 0xf
mov dword [esi + 0x10], 0
mov byte [esi], 0
add esi, 0x1c
cmp esi, dword [esp + 0xc]
jne 0x4f60e8
mov eax, dword [esp + 0x10]
mov dword [edi + 0x24], eax
mov ecx, dword [esp + 0x24]
lea edx, [esp + 0xc]
mov dword [esp + 0xc], ecx
push edx
mov ecx, ebx
call fcn.00446560
mov edi, dword [esp + 0x14]
lea esi, [eax + 0x20]
mov eax, edi
call fcn.00446250
test edi, edi
je 0x4f6171
xor esi, esi
mov dword [esp + 0x14], edi
mov eax, dword [esp + 0x24]
lea ecx, [esp + 0xc]
push ecx
mov ecx, ebx
mov dword [esp + 0x10], eax
call fcn.00446560
mov edi, dword [eax + 0x20]
add edi, esi
lea eax, [esp + 0x30]
call fcn.004f88a0
add esi, 0x1c
dec dword [esp + 0x14]
jne 0x4f6146
lea edx, [esp + 0xc]
push edx
mov eax, 4
lea esi, [esp + 0x34]
mov dword [esp + 0x10], 0
call fcn.004f7fd0
mov eax, dword [esp + 0x24]
lea ecx, [esp + 0x14]
push ecx
mov ecx, ebx
mov dword [esp + 0x18], eax
call fcn.00446560
mov ecx, dword [eax + 4]
mov dword [esp + 0x14], eax
mov eax, dword [eax]
cmp eax, ecx
je 0x4f6204
mov edx, dword [esp + 0x14]
push edx
push ecx
call fcn.0042eac0
mov ecx, dword [esp + 0x1c]
mov edi, dword [ecx + 4]
add esp, 8
mov dword [esp + 0x10], eax
mov esi, eax
cmp eax, edi
je 0x4f61f9
lea esp, [esp]
cmp dword [esi + 0x14], 0x10
jb 0x4f61e1
mov eax, dword [esi]
push eax
call fcn.0048f06d
add esp, 4
mov dword [esi + 0x14], 0xf
mov dword [esi + 0x10], 0
mov byte [esi], 0
add esi, 0x1c
cmp esi, edi
jne 0x4f61d0
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov dword [eax + 4], edx
mov ecx, dword [esp + 0x24]
lea edx, [esp + 0x14]
mov dword [esp + 0x14], ecx
push edx
mov ecx, ebx
call fcn.00446560
mov edi, dword [esp + 0xc]
mov esi, eax
mov eax, edi
call fcn.00446250
test edi, edi
je 0x4f625a
xor esi, esi
mov dword [esp + 0x14], edi
nop
mov eax, dword [esp + 0x24]
lea ecx, [esp + 0xc]
push ecx
mov ecx, ebx
mov dword [esp + 0x10], eax
call fcn.00446560
mov edi, dword [eax]
add edi, esi
lea eax, [esp + 0x30]
call fcn.004f88a0
add esi, 0x1c
dec dword [esp + 0x14]
jne 0x4f6230
lea edx, [esp + 0x14]
push edx
mov eax, 4
lea esi, [esp + 0x34]
mov dword [esp + 0x18], 0
call fcn.004f7fd0
mov eax, dword [esp + 0x24]
lea ecx, [esp + 0xc]
push ecx
mov ecx, ebx
mov dword [esp + 0x10], eax
call fcn.00446560
mov edi, eax
mov ecx, dword [edi + 0x14]
mov eax, dword [edi + 0x10]
cmp eax, ecx
je 0x4f62e6
mov edx, dword [esp + 0x14]
push edx
push ecx
call fcn.0042eac0
mov ecx, dword [edi + 0x14]
add esp, 8
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], ecx
mov esi, eax
cmp eax, ecx
je 0x4f62df
cmp dword [esi + 0x14], 0x10
jb 0x4f62c5
mov eax, dword [esi]
push eax
call fcn.0048f06d
add esp, 4
mov dword [esi + 0x14], 0xf
mov dword [esi + 0x10], 0
mov byte [esi], 0
add esi, 0x1c
cmp esi, dword [esp + 0xc]
jne 0x4f62b4
mov eax, dword [esp + 0x10]
mov dword [edi + 0x14], eax
mov ecx, dword [esp + 0x24]
lea edx, [esp + 0xc]
mov dword [esp + 0xc], ecx
push edx
mov ecx, ebx
call fcn.00446560
mov edi, dword [esp + 0x14]
lea esi, [eax + 0x10]
mov eax, edi
call fcn.00446250
test edi, edi
je 0x4f633d
xor esi, esi
mov dword [esp + 0x14], edi
mov eax, dword [esp + 0x24]
lea ecx, [esp + 0xc]
push ecx
mov ecx, ebx
mov dword [esp + 0x10], eax
call fcn.00446560
mov edi, dword [eax + 0x10]
add edi, esi
lea eax, [esp + 0x30]
call fcn.004f88a0
add esi, 0x1c
dec dword [esp + 0x14]
jne 0x4f6312
lea edx, [esp + 0x14]
push edx
mov eax, 4
lea esi, [esp + 0x34]
mov dword [esp + 0x18], 0
call fcn.004f7fd0
mov eax, dword [esp + 0x14]
mov esi, eax
shl esi, 4
add esi, eax
mov eax, dword [esp + 0x70]
add esi, esi
add esi, esi
cmp eax, 4
ja case.0x4f6370.0
jmp dword [eax*4 + 0x4f6558]
mov eax, dword [esp + 0x38]
push 1
push 0
push esi
push eax
call dword [0x61018c]
mov eax, esi
cdq
add dword [esp + 0x58], eax
adc dword [esp + 0x5c], edx
jmp case.0x4f6370.0
add dword [esp + 0x74], esi
jmp case.0x4f6370.0
mov ecx, dword [esp + 0x54]
mov eax, esi
cdq
add dword [esp + 0x58], eax
mov eax, dword [esp + 0x5c]
adc eax, edx
mov dword [esp + 0x5c], eax
cmp eax, ecx
jb case.0x4f6370.0
mov eax, dword [esp + 0x50]
ja 0x4f63bf
cmp dword [esp + 0x58], eax
jbe case.0x4f6370.0
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], ecx
mov ecx, dword [esp + 0x24]
lea edx, [esp + 0x14]
mov dword [esp + 0x14], ecx
push edx
mov ecx, ebx
call fcn.00446560
mov esi, dword [eax + 0x34]
sub esi, dword [eax + 0x30]
sar esi, 3
dec esi
js 0x4f6450
mov eax, dword [esp + 0x24]
lea ecx, [esp + 0x14]
push ecx
mov ecx, ebx
mov dword [esp + 0x18], eax
call fcn.00446560
mov edx, dword [eax + 0x30]
cmp dword [edx + esi*8], 0x1d
je 0x4f6409
dec esi
jns 0x4f63e7
jmp 0x4f6450
mov eax, dword [esp + 0x24]
lea ecx, [esp + 0x14]
push ecx
mov ecx, ebx
mov dword [esp + 0x18], eax
call fcn.00446560
mov edx, dword [eax + 0x30]
mov edi, dword [ebp + 8]
mov eax, dword [edi + 0x580]
cmp eax, dword [edx + esi*8 + 4]
jge 0x4f6450
mov ecx, dword [esp + 0x24]
lea edx, [esp + 0x14]
mov dword [esp + 0x14], ecx
push edx
mov ecx, ebx
call fcn.00446560
mov eax, dword [eax + 0x30]
mov ecx, dword [eax + esi*8 + 4]
mov dword [edi + 0x580], ecx
lea edx, [esp + 0x24]
push edx
mov eax, 4
lea esi, [esp + 0x34]
call fcn.004f7fd0
test eax, eax
jne 0x4f5fa0
mov edi, dword [ebp + 8]
inc dword [edi + 0x580]
mov eax, dword [edi + 0x580]
lea esi, [edi + 0xa4]
call fcn.00418e00
lea esi, [esp + 0x30]
call fcn.004f7ee0
mov ebx, dword [esp + 0x8c]
cmp ebx, dword [esp + 0x90]
je 0x4f650c
lea esi, [edi + 0xc4]
push esi
lea eax, [esp + 0x18]
push eax
call fcn.00446320
lea ecx, [esp + 0x8c]
push ecx
mov eax, esi
mov byte [esp + 0x100], 3
call fcn.004463d0
mov edx, dword [edi]
mov eax, dword [edx + 4]
mov ecx, edi
call eax
test eax, eax
jne 0x4f64c6
lea ecx, [esp + 0x14]
push ecx
lea eax, [edi + 0xc4]
call fcn.004463d0
mov eax, dword [esp + 0x14]
xor ecx, ecx
mov dword [edi + 0x588], 0xffffffff
mov dword [edi + 0x584], ecx
mov dword [edi + 0x58c], ecx
cmp eax, ecx
je 0x4f650c
push eax
call fcn.0048f06d
add esp, 4
test ebx, ebx
je 0x4f6519
push ebx
call fcn.0048f06d
add esp, 4
lea esi, [esp + 0x30]
mov dword [esp + 0x30], vtable.CFile.0
call fcn.004f7ee0
mov ecx, dword [esp + 0xf4]
pop edi
pop esi
mov al, 1
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 8