Function at 0x52dc80
Capabilities:
Get number of processors

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5c316d
mov eax, dword fs:[0]
push eax
sub esp, 0x3b4
mov eax, dword [0x634b28]
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.00457bb0
lea eax, [ebp - 0x94]
mov dword [ebp - 4], 0
push eax
call fcn.0045a0c0
add esp, 4
lea ecx, [ebp - 0x94]
push 0x10
push 0x5f4380
call fcn.0040657e
push 0
push 0x5f43a4
lea ecx, [ebp - 0x94]
call fcn.0040f39b
cmp eax, 0xffffffff
je 0x52e936
push 0x1c0
lea eax, [ebp - 0x2b4]
push 0
push eax
call fcn.0057e5f0
add esp, 0xc
lea ecx, [ebp - 0x2b4]
push 0
push 1
call fcn.004536c0
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.0052ccb0
add esp, 8
test eax, eax
jne 0x52e92b
push eax
lea ecx, [ebp - 0x2b4]
call fcn.00454ef0
mov esi, eax
test esi, esi
je 0x52e92b
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 0x5f43c0
mov ecx, esi
mov byte [ebp - 4], 3
call fcn.00454910
test eax, eax
mov ecx, esi
push 0x5f4298
setne byte [ebp - 0x310]
call fcn.00454ef0
mov edi, eax
test edi, edi
je 0x52de13
push 0
push 0x5f42a4
mov ecx, edi
call fcn.00454910
push 0
push 0x5f42bc
mov ecx, edi
call fcn.00454910
test eax, eax
je 0x52de13
push eax
lea eax, [ebp - 0x70]
push eax
call fcn.0045d3a0
add esp, 8
lea ecx, [ebp - 0x58]
push eax
call fcn.0041d69d
lea ecx, [ebp - 0x70]
call fcn.004047c6
push 0x5f42c4
mov ecx, esi
call fcn.00454ef0
test eax, eax
je 0x52de63
push 0x5f42d0
mov ecx, eax
call fcn.00454ef0
test eax, eax
je 0x52de63
mov ecx, eax
call fcn.004553b0
mov edi, dword [ebp - 0x2bc]
test eax, eax
je 0x52de69
push eax
lea eax, [ebp - 0x70]
mov ecx, edi
push eax
call fcn.0052d7f0
push eax
lea ecx, [ebp - 0x40]
call fcn.0041d69d
lea ecx, [ebp - 0x70]
call fcn.004047c6
jmp 0x52de69
mov edi, dword [ebp - 0x2bc]
push 0x5f43cc
mov ecx, esi
call fcn.00454ef0
test eax, eax
je 0x52e8a3
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 0x5f43dc
mov ecx, eax
mov byte [ebp - 4], 4
call fcn.00454ef0
mov dword [ebp - 0x2d0], eax
test eax, eax
je 0x52e7b0
push 0
push 0x5f43e8
mov ecx, eax
call fcn.00454910
test eax, eax
je 0x52e77f
push 0x1c8
call fcn.005460b6
mov esi, eax
add esp, 4
mov dword [ebp - 0x30c], esi
mov byte [ebp - 4], 5
test esi, esi
je 0x52df11
push 0x1c8
push 0
push esi
call fcn.0057e5f0
add esp, 0xc
mov ecx, esi
call fcn.00531140
jmp 0x52df13
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 0x52df38
mov dword [ecx], eax
add ecx, 4
mov dword [ebp - 0x18], ecx
jmp 0x52df51
lea eax, [ebp - 0x2c4]
push eax
push ecx
lea ecx, [ebp - 0x1c]
call fcn.0052c200
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x2d4], eax
push 0x60
lea eax, [ebp - 0xf4]
push 0
push eax
call fcn.0057e5f0
lea ecx, [edi + 0x18]
add esp, 0xc
cmp dword [ecx + 0x14], 8
mov eax, ecx
mov dword [ebp - 0x314], ecx
jb 0x52df77
mov eax, dword [ecx]
push eax
lea ecx, [ebp - 0x304]
call fcn.00404ab8
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.00404ab8
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.00404ab8
cmp dword [edi + 0x5c], 8
lea ecx, [edi + 0x48]
mov byte [ebp - 4], 8
mov eax, ecx
mov dword [ebp - 0x2d8], ecx
jb 0x52dfd0
mov eax, dword [ecx]
push eax
lea ecx, [ebp - 0x2f8]
call fcn.00404ab8
cmp dword [edi + 0x44], 8
lea eax, [edi + 0x30]
mov byte [ebp - 4], 9
jb 0x52dfec
mov eax, dword [edi + 0x30]
push eax
lea ecx, [ebp - 0x2f4]
call fcn.00404ab8
cmp dword [edi + 0x14], 8
mov eax, edi
mov byte [ebp - 4], 0xa
jb 0x52e006
mov eax, dword [edi]
push eax
lea ecx, [ebp - 0x2f0]
call fcn.00404ab8
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.00531c50
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 0x52e06d
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 0x52e08f
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 0x52e0b1
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 0x52e0d3
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 0x52e0f5
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 0x52e117
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
movaps xmm0, xmmword [0x5f4400]
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.005886e8
mov ecx, eax
add esp, 4
and ecx, edx
cmp ecx, 0xffffffff
je 0x52e992
cmp dword [ebp - 0xb0], eax
jne 0x52e171
cmp dword [ebp - 0xac], edx
jne 0x52e171
push dword [edi + 0x7c]
lea ecx, [ebp - 0xf4]
push dword [edi + 0x78]
call fcn.005320a0
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.0052d290
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 0x52e300
cmp ebx, edi
je 0x52e20a
lea esi, [ebx + 0x48]
nop word [eax + eax]
lea eax, [ebp - 0x40]
cmp esi, eax
je 0x52e1fa
cmp dword [ebp - 0x2c], 8
mov ecx, esi
push dword [ebp - 0x30]
cmovae eax, dword [ebp - 0x40]
push eax
call fcn.0040491a
add esi, 0x7c
lea eax, [esi - 0x48]
cmp eax, edi
jne 0x52e1e0
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 0x52e2ca
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 0x52e98d
imul esi, eax, 0x7c
cmp esi, 0x1000
jb 0x52e27c
lea eax, [esi + 0x23]
cmp eax, esi
jbe 0x52e98d
push eax
call fcn.005460b6
add esp, 4
test eax, eax
je 0x52e9a6
lea ecx, [eax + 0x23]
and ecx, 0xffffffe0
mov dword [ecx - 4], eax
jmp 0x52e28f
test esi, esi
je 0x52e28d
push esi
call fcn.005460b6
add esp, 4
mov ecx, eax
jmp 0x52e28f
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.0052c4a0
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 0x52e2f1
push dword [ebp - 0x30c]
push eax
push edx
call fcn.0052bf70
lea ecx, [ebp - 0x2ec]
mov byte [ebp - 4], 0x13
call fcn.0052cf50
push dword [ebp - 0x2d0]
call fcn.0052cae0
mov ebx, eax
add esp, 4
mov dword [ebp - 0x2c4], ebx
test ebx, ebx
je 0x52e72b
push 0
push 0x5f436c
mov ecx, ebx
call fcn.00454910
push 0
push 0x5f43ec
mov ecx, ebx
mov esi, eax
call fcn.00454910
mov edi, eax
test esi, esi
je 0x52e3b1
mov ecx, dword [ebp - 0x2bc]
lea eax, [ebp - 0x70]
push esi
push eax
call fcn.0052d7f0
cmp dword [ebp - 0x60], 0
mov byte [ebp - 4], 0x16
je 0x52e373
cmp dword [ebp - 0x5c], 8
lea eax, [ebp - 0x70]
lea ecx, [ebp - 0xf4]
cmovae eax, dword [ebp - 0x70]
push eax
call fcn.00531de0
mov edx, dword [ebp - 0x5c]
mov byte [ebp - 4], 0x13
cmp edx, 8
jb 0x52e3b1
mov ecx, dword [ebp - 0x70]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x52e3a7
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x52e9a6
push edx
push ecx
call fcn.0057b69e
add esp, 8
test edi, edi
je 0x52e520
call fcn.0054671f
mov ecx, eax
test ecx, ecx
je 0x52e99c
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 0x52e47c
movzx edi, di
push edi
call fcn.005465d8
test eax, eax
je 0x52e49d
push edi
push eax
call fcn.00404d4e
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x52e49d
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 0x52e992
mov ecx, dword [esi - 8]
mov edx, 1
sub edx, dword [esi - 4]
sub ecx, edi
or ecx, edx
jge 0x52e452
push edi
lea ecx, [ebp - 0x2b8]
call fcn.00409852
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 0x52e992
mov dword [esi - 0xc], edi
mov byte [edi + esi], 0
jmp 0x52e49d
mov ecx, edi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x52e481
sub ecx, edx
push ecx
push edi
lea ecx, [ebp - 0x2b8]
call fcn.00409944
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 0x52e501
cmp dword [edi + 0xc], 0
jl 0x52e4f8
mov eax, dword [ebx]
cmp eax, dword [edi]
jne 0x52e4f8
push ebx
call fcn.00437d85
add esp, 4
lea edx, [edi + 0xc]
mov esi, eax
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x52e4e7
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 0x52e501
push dword [esi - 0xc]
push esi
call fcn.00409944
mov byte [ebp - 4], 0x13
or eax, 0xffffffff
lock xadd dword [ebx + 0xc], eax
dec eax
test eax, eax
jg 0x52e51a
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 0x52e52e
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x308]
call fcn.00404ab8
mov edi, dword [ebp - 0x2c0]
lea eax, [ebp - 0x308]
push eax
mov byte [ebp - 4], 0x19
lea ecx, [edi + 0x1ac]
call fcn.00471d00
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 0x52e578
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 0x52e588
mov eax, dword [ecx]
push eax
lea ecx, [ebp - 0x2c8]
call fcn.00404ab8
lea eax, [ebp - 0x2c8]
mov byte [ebp - 4], 0x1a
push eax
lea ecx, [edi + 0x1b0]
call fcn.00471d00
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 0x52e5cc
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 0x52e5da
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x2cc]
call fcn.00404ab8
lea eax, [ebp - 0x2cc]
mov byte [ebp - 4], 0x1b
push eax
lea ecx, [edi + 0x1b4]
call fcn.00471d00
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 0x52e61e
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 0x52e62e
mov eax, dword [ecx]
push ebx
push eax
lea eax, [ebp - 0x3c0]
push eax
call fcn.0052d600
add esp, 0xc
mov esi, eax
add edi, 0xf4
mov byte [ebp - 4], 0x1c
cmp edi, esi
je 0x52e662
cmp dword [esi + 0x14], 8
jb 0x52e657
mov eax, dword [esi]
push dword [esi + 0x10]
mov ecx, edi
push eax
call fcn.0040491a
lea eax, [esi + 0x18]
lea ecx, [edi + 0x18]
cmp ecx, eax
je 0x52e67f
cmp dword [eax + 0x14], 8
mov edx, eax
jb 0x52e676
mov edx, dword [eax]
push dword [eax + 0x10]
push edx
call fcn.0040491a
mov eax, dword [esi + 0x30]
lea ecx, [edi + 0x34]
mov dword [edi + 0x30], eax
lea eax, [esi + 0x34]
cmp ecx, eax
je 0x52e6a2
cmp dword [eax + 0x14], 8
mov edx, eax
jb 0x52e699
mov edx, dword [eax]
push dword [eax + 0x10]
push edx
call fcn.0040491a
lea eax, [esi + 0x4c]
lea ecx, [edi + 0x4c]
cmp ecx, eax
je 0x52e6bf
cmp dword [eax + 0x14], 8
mov edx, eax
jb 0x52e6b6
mov edx, dword [eax]
push dword [eax + 0x10]
push edx
call fcn.0040491a
lea eax, [esi + 0x64]
lea ecx, [edi + 0x64]
cmp ecx, eax
je 0x52e6dc
cmp dword [eax + 0x14], 8
mov edx, eax
jb 0x52e6d3
mov edx, dword [eax]
push dword [eax + 0x10]
push edx
call fcn.0040491a
lea eax, [esi + 0x7c]
lea ecx, [edi + 0x7c]
cmp ecx, eax
je 0x52e6f9
cmp dword [eax + 0x14], 8
mov edx, eax
jb 0x52e6f0
mov edx, dword [eax]
push dword [eax + 0x10]
push edx
call fcn.0040491a
add esi, 0x94
lea ecx, [edi + 0x94]
cmp ecx, esi
je 0x52e71c
cmp dword [esi + 0x14], 8
mov eax, esi
jb 0x52e713
mov eax, dword [esi]
push dword [esi + 0x10]
push eax
call fcn.0040491a
lea ecx, [ebp - 0x3c0]
mov byte [ebp - 4], 0x13
call fcn.0052c6d0
mov ebx, dword [ebp - 0x2c0]
lea eax, [ebp - 0xf4]
push eax
mov ecx, ebx
call fcn.005319c0
mov ecx, dword [ebp - 0x2e0]
mov dword [ebp - 0x2d8], ebx
mov eax, dword [ecx + 4]
cmp eax, dword [ecx + 8]
je 0x52e75b
mov dword [eax], ebx
add dword [ecx + 4], 4
jmp 0x52e768
lea edx, [ebp - 0x2d8]
push edx
push eax
call fcn.0040f554
lea ecx, [ebp - 0x28]
call fcn.0052cf50
lea ecx, [ebp - 0xf4]
mov byte [ebp - 4], 4
call fcn.00435d5a
mov ecx, dword [ebp - 0x2d0]
push 0x5f43dc
call fcn.00455b80
mov dword [ebp - 0x2d0], eax
test eax, eax
je 0x52e7a4
mov edi, dword [ebp - 0x2bc]
jmp 0x52dec5
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 0x52e86c
mov eax, ebx
mov dword [ebp - 0x2c8], ebx
cmp eax, esi
je 0x52e86c
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.0052d020
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.0057e070
mov eax, dword [ebp - 0x2cc]
add esp, 0xc
add eax, esi
mov ecx, ebx
mov dword [edi + 4], eax
call fcn.00531b80
mov eax, dword [ebp - 0x2c8]
mov ecx, dword [ebp - 0x2dc]
add eax, 4
mov dword [ebp - 0x2c8], eax
cmp eax, dword [ebp - 0x18]
jne 0x52e7f0
mov ebx, dword [ebp - 0x2b8]
test ebx, ebx
je 0x52e8a3
mov ecx, dword [ebp - 0x2d4]
mov eax, ebx
sub ecx, ebx
and ecx, 0xfffffffc
cmp ecx, 0x1000
jb 0x52e899
mov ebx, dword [ebx - 4]
add ecx, 0x23
sub eax, ebx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x52e9a6
push ecx
push ebx
call fcn.0057b69e
add esp, 8
mov edx, dword [ebp - 0x44]
cmp edx, 8
jb 0x52e8dd
mov ecx, dword [ebp - 0x58]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x52e8d3
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x52e9a6
push edx
push ecx
call fcn.0057b69e
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 0x52e92b
mov ecx, dword [ebp - 0x40]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x52e921
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x52e9a6
push edx
push ecx
call fcn.0057b69e
add esp, 8
lea ecx, [ebp - 0x2b4]
call fcn.00453ad0
mov edx, dword [ebp - 0x80]
cmp edx, 8
jb 0x52e96f
mov ecx, dword [ebp - 0x94]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x52e965
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x52e9ab
push edx
push ecx
call fcn.0057b69e
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.0057b6ac
mov esp, ebp
pop ebp
ret 4
call fcn.00404863
push 0x80070057
call fcn.00404d7e
push 0x80004005
call fcn.00404d7e
call fcn.00582360
call fcn.00582360
int3