Function at 0x549110
Capabilities:
Get number of processors

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5e4c8d
mov eax, dword fs:[0]
push eax
sub esp, 0x3b4
mov eax, dword [0x65eb68]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x2bc], ecx
mov eax, dword [ebp + 8]
add ecx, 0x30
mov dword [ebp - 0x2dc], ecx
push ecx
lea ecx, [ebp - 0x94]
mov dword [ebp - 0x2e0], eax
call fcn.0046e3c0
lea eax, [ebp - 0x94]
mov dword [ebp - 4], 0
push eax
call fcn.00471a90
add esp, 4
lea ecx, [ebp - 0x94]
push 0x10
push 0x618f88
call fcn.0040656e
push 0
push 0x618fac
lea ecx, [ebp - 0x94]
call fcn.00419461
cmp eax, 0xffffffff
je 0x549dc6
push 0x1c0
lea eax, [ebp - 0x2b4]
push 0
push eax
call fcn.0059dbb0
add esp, 0xc
lea ecx, [ebp - 0x2b4]
push 0
push 1
call fcn.00469e50
cmp dword [ebp - 0x80], 8
lea eax, [ebp - 0x94]
mov byte [ebp - 4], 1
cmovae eax, dword [ebp - 0x94]
push eax
lea eax, [ebp - 0x2b4]
push eax
call fcn.00548180
add esp, 8
test eax, eax
jne 0x549dbb
push eax
lea ecx, [ebp - 0x2b4]
call fcn.0046b650
mov esi, eax
test esi, esi
je 0x549dbb
xor eax, eax
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 7
mov word [ebp - 0x40], ax
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], 7
mov word [ebp - 0x58], ax
push eax
push 0x618fc8
mov ecx, esi
mov byte [ebp - 4], 3
call fcn.0046b020
test eax, eax
mov ecx, esi
push 0x618ea0
setne byte [ebp - 0x310]
call fcn.0046b650
mov edi, eax
test edi, edi
je 0x5492a3
push 0
push 0x618eac
mov ecx, edi
call fcn.0046b020
push 0
push 0x618ec4
mov ecx, edi
call fcn.0046b020
test eax, eax
je 0x5492a3
push eax
lea eax, [ebp - 0x70]
push eax
call fcn.00474980
add esp, 8
lea ecx, [ebp - 0x58]
push eax
call fcn.00428fbe
lea ecx, [ebp - 0x70]
call fcn.00404866
push 0x618ecc
mov ecx, esi
call fcn.0046b650
test eax, eax
je 0x5492f3
push 0x618ed8
mov ecx, eax
call fcn.0046b650
test eax, eax
je 0x5492f3
mov ecx, eax
call fcn.0046bb10
mov edi, dword [ebp - 0x2bc]
test eax, eax
je 0x5492f9
push eax
lea eax, [ebp - 0x70]
mov ecx, edi
push eax
call fcn.00548c80
push eax
lea ecx, [ebp - 0x40]
call fcn.00428fbe
lea ecx, [ebp - 0x70]
call fcn.00404866
jmp 0x5492f9
mov edi, dword [ebp - 0x2bc]
push 0x618fd4
mov ecx, esi
call fcn.0046b650
test eax, eax
je 0x549d33
xorps xmm0, xmm0
mov dword [ebp - 0x14], 0
xor ebx, ebx
movq qword [ebp - 0x1c], xmm0
xor ecx, ecx
mov dword [ebp - 0x2b8], ebx
xor esi, esi
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x2d4], ecx
mov dword [ebp - 0x14], ecx
push 0x618fe4
mov ecx, eax
mov byte [ebp - 4], 4
call fcn.0046b650
mov dword [ebp - 0x2d0], eax
test eax, eax
je 0x549c40
push 0
push 0x618ff0
mov ecx, eax
call fcn.0046b020
test eax, eax
je 0x549c0f
push 0x1c8
call fcn.005649a6
mov esi, eax
add esp, 4
mov dword [ebp - 0x30c], esi
mov byte [ebp - 4], 5
test esi, esi
je 0x5493a1
push 0x1c8
push 0
push esi
call fcn.0059dbb0
add esp, 0xc
mov ecx, esi
call fcn.0054fa40
jmp 0x5493a3
xor eax, eax
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x2c0], eax
mov byte [ebp - 4], 4
mov dword [ebp - 0x2c4], eax
cmp ecx, dword [ebp - 0x2d4]
je 0x5493c8
mov dword [ecx], eax
add ecx, 4
mov dword [ebp - 0x18], ecx
jmp 0x5493e1
lea eax, [ebp - 0x2c4]
push eax
push ecx
lea ecx, [ebp - 0x1c]
call fcn.005476d0
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x2d4], eax
push 0x60
lea eax, [ebp - 0xf4]
push 0
push eax
call fcn.0059dbb0
lea ecx, [edi + 0x18]
add esp, 0xc
cmp dword [ecx + 0x14], 8
mov eax, ecx
mov dword [ebp - 0x314], ecx
jb 0x549407
mov eax, dword [ecx]
push eax
lea ecx, [ebp - 0x304]
call fcn.00404b48
cmp dword [ebp - 0x44], 8
lea eax, [ebp - 0x58]
lea ecx, [ebp - 0x300]
mov byte [ebp - 4], 6
cmovae eax, dword [ebp - 0x58]
push eax
call fcn.00404b48
cmp dword [ebp - 0x2c], 8
lea eax, [ebp - 0x40]
lea ecx, [ebp - 0x2fc]
mov byte [ebp - 4], 7
cmovae eax, dword [ebp - 0x40]
push eax
call fcn.00404b48
cmp dword [edi + 0x5c], 8
lea ecx, [edi + 0x48]
mov byte [ebp - 4], 8
mov eax, ecx
mov dword [ebp - 0x2d8], ecx
jb 0x549460
mov eax, dword [ecx]
push eax
lea ecx, [ebp - 0x2f8]
call fcn.00404b48
cmp dword [edi + 0x44], 8
lea eax, [edi + 0x30]
mov byte [ebp - 4], 9
jb 0x54947c
mov eax, dword [edi + 0x30]
push eax
lea ecx, [ebp - 0x2f4]
call fcn.00404b48
cmp dword [edi + 0x14], 8
mov eax, edi
mov byte [ebp - 4], 0xa
jb 0x549496
mov eax, dword [edi]
push eax
lea ecx, [ebp - 0x2f0]
call fcn.00404b48
lea eax, [ebp - 0x304]
mov byte [ebp - 4], 0xb
push eax
lea eax, [ebp - 0x300]
push eax
lea eax, [ebp - 0x2fc]
push eax
lea eax, [ebp - 0x2f8]
push eax
lea eax, [ebp - 0x2f4]
push eax
lea eax, [ebp - 0x2f0]
push eax
lea ecx, [ebp - 0xf4]
call fcn.00550550
mov edx, dword [ebp - 0x2f0]
or eax, 0xffffffff
mov byte [ebp - 4], 0xd
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x5494fd
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x2f4]
or eax, 0xffffffff
mov byte [ebp - 4], 0xe
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x54951f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x2f8]
or eax, 0xffffffff
mov byte [ebp - 4], 0xf
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x549541
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x2fc]
or eax, 0xffffffff
mov byte [ebp - 4], 0x10
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x549563
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x300]
or eax, 0xffffffff
mov byte [ebp - 4], 0x11
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x549585
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x304]
or eax, 0xffffffff
mov byte [ebp - 4], 0x12
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x5495a7
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
movaps xmm0, xmmword [0x619010]
lea eax, [ebp - 0x7c]
push eax
movups xmmword [ebp - 0x7c], xmm0
mov dword [ebp - 0x6c], 0xb
mov dword [ebp - 0x68], 0x46
mov dword [ebp - 0x5c], 0xffffffff
call fcn.005a9407
mov ecx, eax
add esp, 4
and ecx, edx
cmp ecx, 0xffffffff
je 0x549e22
cmp dword [ebp - 0xb0], eax
jne 0x549601
cmp dword [ebp - 0xac], edx
jne 0x549601
push dword [edi + 0x7c]
lea ecx, [ebp - 0xf4]
push dword [edi + 0x78]
call fcn.005509a0
xorps xmm0, xmm0
mov dword [ebp - 0x20], 0
movq qword [ebp - 0x28], xmm0
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 0x13
push eax
push dword [ebp - 0x310]
mov ecx, edi
push dword [ebp - 0x2d0]
call fcn.00548720
mov edi, dword [ebp - 0x24]
mov eax, 0x84210843
mov ebx, dword [ebp - 0x28]
mov ecx, edi
sub ecx, ebx
imul ecx
add edx, ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x549790
cmp ebx, edi
je 0x54969a
lea esi, [ebx + 0x48]
nop word [eax + eax]
lea eax, [ebp - 0x40]
cmp esi, eax
je 0x54968a
cmp dword [ebp - 0x2c], 8
mov ecx, esi
push dword [ebp - 0x30]
cmovae eax, dword [ebp - 0x40]
push eax
call fcn.004049aa
add esi, 0x7c
lea eax, [esi - 0x48]
cmp eax, edi
jne 0x549670
mov edi, dword [ebp - 0x24]
mov ebx, dword [ebp - 0x28]
xor eax, eax
xor edx, edx
mov dword [ebp - 0x2ec], edx
mov dword [ebp - 0x2e8], eax
mov dword [ebp - 0x2e4], eax
cmp ebx, edi
je 0x54975a
mov ecx, edi
mov eax, 0x84210843
sub ecx, ebx
imul ecx
add edx, ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 0x2108421
ja 0x549e1d
imul esi, eax, 0x7c
cmp esi, 0x1000
jb 0x54970c
lea eax, [esi + 0x23]
cmp eax, esi
jbe 0x549e1d
push eax
call fcn.005649a6
add esp, 4
test eax, eax
je 0x549e36
lea ecx, [eax + 0x23]
and ecx, 0xffffffe0
mov dword [ecx - 4], eax
jmp 0x54971f
test esi, esi
je 0x54971d
push esi
call fcn.005649a6
add esp, 4
mov ecx, eax
jmp 0x54971f
xor ecx, ecx
lea eax, [esi + ecx]
mov dword [ebp - 0x2ec], ecx
mov dword [ebp - 0x2e4], eax
lea eax, [ebp - 0x2ec]
mov dword [ebp - 0x2e8], ecx
mov dword [ebp - 0x2c4], eax
push ecx
push edi
push ebx
mov ecx, eax
mov byte [ebp - 4], 0x14
call fcn.00547970
mov edx, dword [ebp - 0x2ec]
mov dword [ebp - 0x2e8], eax
mov ecx, dword [ebp - 0x2c0]
lea esi, [ebp - 0x2ec]
add ecx, 0x1a0
mov byte [ebp - 4], 0x15
cmp ecx, esi
je 0x549781
push dword [ebp - 0x30c]
push eax
push edx
call fcn.00547440
lea ecx, [ebp - 0x2ec]
mov byte [ebp - 4], 0x13
call fcn.005483e0
push dword [ebp - 0x2d0]
call fcn.00547fb0
mov ebx, eax
add esp, 4
mov dword [ebp - 0x2c4], ebx
test ebx, ebx
je 0x549bbb
push 0
push 0x618f74
mov ecx, ebx
call fcn.0046b020
push 0
push 0x618ff4
mov ecx, ebx
mov esi, eax
call fcn.0046b020
mov edi, eax
test esi, esi
je 0x549841
mov ecx, dword [ebp - 0x2bc]
lea eax, [ebp - 0x70]
push esi
push eax
call fcn.00548c80
cmp dword [ebp - 0x60], 0
mov byte [ebp - 4], 0x16
je 0x549803
cmp dword [ebp - 0x5c], 8
lea eax, [ebp - 0x70]
lea ecx, [ebp - 0xf4]
cmovae eax, dword [ebp - 0x70]
push eax
call fcn.005506e0
mov edx, dword [ebp - 0x5c]
mov byte [ebp - 4], 0x13
cmp edx, 8
jb 0x549841
mov ecx, dword [ebp - 0x70]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x549837
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x549e36
push edx
push ecx
call fcn.00599f8e
add esp, 8
test edi, edi
je 0x5499b0
call fcn.0056500f
mov ecx, eax
test ecx, ecx
je 0x549e2c
mov eax, dword [ecx]
call dword [eax + 0xc]
lea esi, [eax + 0x10]
mov dword [ebp - 0x2b8], esi
mov byte [ebp - 4], 0x17
test edi, 0xffff0000
jne 0x54990c
movzx edi, di
push edi
call fcn.00564ec8
test eax, eax
je 0x54992d
push edi
push eax
call fcn.00404dde
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x54992d
movzx ecx, word [ebx]
lea eax, [ebx + 2]
push 0
push 0
push 0
push 0
push ecx
push eax
push 0
push 3
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov edi, eax
test edi, edi
js 0x549e22
mov ecx, dword [esi - 8]
mov edx, 1
sub edx, dword [esi - 4]
sub ecx, edi
or ecx, edx
jge 0x5498e2
push edi
lea ecx, [ebp - 0x2b8]
call fcn.00413de1
mov esi, dword [ebp - 0x2b8]
movzx eax, word [ebx]
push 0
push 0
push edi
push esi
push eax
lea eax, [ebx + 2]
push eax
push 0
push 3
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
cmp edi, dword [esi - 8]
jg 0x549e22
mov dword [esi - 0xc], edi
mov byte [edi + esi], 0
jmp 0x54992d
mov ecx, edi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x549911
sub ecx, edx
push ecx
push edi
lea ecx, [ebp - 0x2b8]
call fcn.00413ed3
mov esi, dword [ebp - 0x2b8]
mov ecx, dword [ebp - 0x2c0]
lea ebx, [esi - 0x10]
add ecx, 0xf0
mov byte [ebp - 4], 0x18
mov edi, dword [ecx]
sub edi, 0x10
cmp ebx, edi
je 0x549991
cmp dword [edi + 0xc], 0
jl 0x549988
mov eax, dword [ebx]
cmp eax, dword [edi]
jne 0x549988
push ebx
call fcn.00447a2b
add esp, 4
lea edx, [edi + 0xc]
mov esi, eax
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x549977
mov ecx, dword [edi]
push edi
mov edx, dword [ecx]
call dword [edx + 4]
mov ecx, dword [ebp - 0x2c0]
lea eax, [esi + 0x10]
mov dword [ecx + 0xf0], eax
jmp 0x549991
push dword [esi - 0xc]
push esi
call fcn.00413ed3
mov byte [ebp - 4], 0x13
or eax, 0xffffffff
lock xadd dword [ebx + 0xc], eax
dec eax
test eax, eax
jg 0x5499aa
mov ecx, dword [ebx]
push ebx
mov eax, dword [ecx]
call dword [eax + 4]
mov ebx, dword [ebp - 0x2c4]
mov eax, dword [ebp - 0x314]
cmp dword [eax + 0x14], 8
jb 0x5499be
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x308]
call fcn.00404b48
mov edi, dword [ebp - 0x2c0]
lea eax, [ebp - 0x308]
push eax
mov byte [ebp - 4], 0x19
lea ecx, [edi + 0x1ac]
call fcn.0048d280
mov edx, dword [ebp - 0x308]
or eax, 0xffffffff
mov byte [ebp - 4], 0x13
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x549a08
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [ebp - 0x2bc]
mov eax, ecx
cmp dword [ecx + 0x14], 8
jb 0x549a18
mov eax, dword [ecx]
push eax
lea ecx, [ebp - 0x2c8]
call fcn.00404b48
lea eax, [ebp - 0x2c8]
mov byte [ebp - 4], 0x1a
push eax
lea ecx, [edi + 0x1b0]
call fcn.0048d280
mov edx, dword [ebp - 0x2c8]
or eax, 0xffffffff
mov byte [ebp - 4], 0x13
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x549a5c
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x2d8]
cmp dword [eax + 0x14], 8
jb 0x549a6a
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x2cc]
call fcn.00404b48
lea eax, [ebp - 0x2cc]
mov byte [ebp - 4], 0x1b
push eax
lea ecx, [edi + 0x1b4]
call fcn.0048d280
mov edx, dword [ebp - 0x2cc]
or eax, 0xffffffff
mov byte [ebp - 4], 0x13
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x549aae
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [ebp - 0x2dc]
mov eax, ecx
cmp dword [ecx + 0x14], 8
jb 0x549abe
mov eax, dword [ecx]
push ebx
push eax
lea eax, [ebp - 0x3c0]
push eax
call fcn.00548a90
add esp, 0xc
mov esi, eax
add edi, 0xf4
mov byte [ebp - 4], 0x1c
cmp edi, esi
je 0x549af2
cmp dword [esi + 0x14], 8
jb 0x549ae7
mov eax, dword [esi]
push dword [esi + 0x10]
mov ecx, edi
push eax
call fcn.004049aa
lea eax, [esi + 0x18]
lea ecx, [edi + 0x18]
cmp ecx, eax
je 0x549b0f
cmp dword [eax + 0x14], 8
mov edx, eax
jb 0x549b06
mov edx, dword [eax]
push dword [eax + 0x10]
push edx
call fcn.004049aa
mov eax, dword [esi + 0x30]
lea ecx, [edi + 0x34]
mov dword [edi + 0x30], eax
lea eax, [esi + 0x34]
cmp ecx, eax
je 0x549b32
cmp dword [eax + 0x14], 8
mov edx, eax
jb 0x549b29
mov edx, dword [eax]
push dword [eax + 0x10]
push edx
call fcn.004049aa
lea eax, [esi + 0x4c]
lea ecx, [edi + 0x4c]
cmp ecx, eax
je 0x549b4f
cmp dword [eax + 0x14], 8
mov edx, eax
jb 0x549b46
mov edx, dword [eax]
push dword [eax + 0x10]
push edx
call fcn.004049aa
lea eax, [esi + 0x64]
lea ecx, [edi + 0x64]
cmp ecx, eax
je 0x549b6c
cmp dword [eax + 0x14], 8
mov edx, eax
jb 0x549b63
mov edx, dword [eax]
push dword [eax + 0x10]
push edx
call fcn.004049aa
lea eax, [esi + 0x7c]
lea ecx, [edi + 0x7c]
cmp ecx, eax
je 0x549b89
cmp dword [eax + 0x14], 8
mov edx, eax
jb 0x549b80
mov edx, dword [eax]
push dword [eax + 0x10]
push edx
call fcn.004049aa
add esi, 0x94
lea ecx, [edi + 0x94]
cmp ecx, esi
je 0x549bac
cmp dword [esi + 0x14], 8
mov eax, esi
jb 0x549ba3
mov eax, dword [esi]
push dword [esi + 0x10]
push eax
call fcn.004049aa
lea ecx, [ebp - 0x3c0]
mov byte [ebp - 4], 0x13
call fcn.00547ba0
mov ebx, dword [ebp - 0x2c0]
lea eax, [ebp - 0xf4]
push eax
mov ecx, ebx
call fcn.005502c0
mov ecx, dword [ebp - 0x2e0]
mov dword [ebp - 0x2d8], ebx
mov eax, dword [ecx + 4]
cmp eax, dword [ecx + 8]
je 0x549beb
mov dword [eax], ebx
add dword [ecx + 4], 4
jmp 0x549bf8
lea edx, [ebp - 0x2d8]
push edx
push eax
call fcn.00419542
lea ecx, [ebp - 0x28]
call fcn.005483e0
lea ecx, [ebp - 0xf4]
mov byte [ebp - 4], 4
call fcn.004454bb
mov ecx, dword [ebp - 0x2d0]
push 0x618fe4
call fcn.0046c2e0
mov dword [ebp - 0x2d0], eax
test eax, eax
je 0x549c34
mov edi, dword [ebp - 0x2bc]
jmp 0x549355
mov ebx, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x18]
mov dword [ebp - 0x2b8], ebx
mov eax, esi
sub eax, ebx
mov ecx, eax
mov dword [ebp - 0x2e0], eax
sar ecx, 2
mov dword [ebp - 0x2dc], ecx
cmp ecx, 1
jbe 0x549cfc
mov eax, ebx
mov dword [ebp - 0x2c8], ebx
cmp eax, esi
je 0x549cfc
lea edx, [ecx*4]
mov dword [ebp - 0x2cc], edx
nop dword [eax + eax]
mov ebx, dword [eax]
sub esp, 0xc
mov edi, esp
push ecx
mov ecx, edi
mov dword [edi], 0
mov dword [edi + 4], 0
mov dword [edi + 8], 0
call fcn.005484b0
push dword [ebp - 0x2e0]
mov edx, dword [ebp - 0x2cc]
mov esi, eax
push dword [ebp - 0x2b8]
mov dword [edi], esi
add edx, esi
mov dword [edi + 4], esi
push esi
mov dword [edi + 8], edx
call fcn.0059d630
mov eax, dword [ebp - 0x2cc]
add esp, 0xc
add eax, esi
mov ecx, ebx
mov dword [edi + 4], eax
call fcn.00550480
mov eax, dword [ebp - 0x2c8]
mov ecx, dword [ebp - 0x2dc]
add eax, 4
mov dword [ebp - 0x2c8], eax
cmp eax, dword [ebp - 0x18]
jne 0x549c80
mov ebx, dword [ebp - 0x2b8]
test ebx, ebx
je 0x549d33
mov ecx, dword [ebp - 0x2d4]
mov eax, ebx
sub ecx, ebx
and ecx, 0xfffffffc
cmp ecx, 0x1000
jb 0x549d29
mov ebx, dword [ebx - 4]
add ecx, 0x23
sub eax, ebx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x549e36
push ecx
push ebx
call fcn.00599f8e
add esp, 8
mov edx, dword [ebp - 0x44]
cmp edx, 8
jb 0x549d6d
mov ecx, dword [ebp - 0x58]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x549d63
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x549e36
push edx
push ecx
call fcn.00599f8e
add esp, 8
mov edx, dword [ebp - 0x2c]
xor eax, eax
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 7
mov word [ebp - 0x58], ax
cmp edx, 8
jb 0x549dbb
mov ecx, dword [ebp - 0x40]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x549db1
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x549e36
push edx
push ecx
call fcn.00599f8e
add esp, 8
lea ecx, [ebp - 0x2b4]
call fcn.0046a260
mov edx, dword [ebp - 0x80]
cmp edx, 8
jb 0x549dff
mov ecx, dword [ebp - 0x94]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x549df5
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x549e3b
push edx
push ecx
call fcn.00599f8e
add esp, 8
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00599f9c
mov esp, ebp
pop ebp
ret 4
call fcn.004048fe
push 0x80070057
call fcn.00404e0e
push 0x80004005
call fcn.00404e0e
call fcn.005a1930
call fcn.005a1930
int3