Function at 0x520b30
Capabilities:
Get number of processors

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5b4fad
mov eax, dword fs:[0]
push eax
sub esp, 0x3b4
mov eax, dword [0x6244f8]
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.0044bc50
lea eax, [ebp - 0x94]
mov dword [ebp - 4], 0
push eax
call fcn.0044e100
add esp, 4
lea ecx, [ebp - 0x94]
push 0x10
push 0x5e59f8
call fcn.004063a4
push 0
push 0x5e5a1c
lea ecx, [ebp - 0x94]
call fcn.0043780f
cmp eax, 0xffffffff
je 0x5217e6
push 0x1c0
lea eax, [ebp - 0x2b4]
push 0
push eax
call fcn.00570de0
add esp, 0xc
lea ecx, [ebp - 0x2b4]
push 0
push 1
call fcn.00447700
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.0051fb60
add esp, 8
test eax, eax
jne 0x5217db
push eax
lea ecx, [ebp - 0x2b4]
call fcn.00448f30
mov esi, eax
test esi, esi
je 0x5217db
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 0x5e5a38
mov ecx, esi
mov byte [ebp - 4], 3
call fcn.00448950
test eax, eax
mov ecx, esi
push 0x5e5910
setne byte [ebp - 0x310]
call fcn.00448f30
mov edi, eax
test edi, edi
je 0x520cc3
push 0
push 0x5e591c
mov ecx, edi
call fcn.00448950
push 0
push 0x5e5934
mov ecx, edi
call fcn.00448950
test eax, eax
je 0x520cc3
push eax
lea eax, [ebp - 0x70]
push eax
call fcn.004515f0
add esp, 8
lea ecx, [ebp - 0x58]
push eax
call fcn.004191bb
lea ecx, [ebp - 0x70]
call fcn.00404885
push 0x5e593c
mov ecx, esi
call fcn.00448f30
test eax, eax
je 0x520d13
push 0x5e5948
mov ecx, eax
call fcn.00448f30
test eax, eax
je 0x520d13
mov ecx, eax
call fcn.004493f0
mov edi, dword [ebp - 0x2bc]
test eax, eax
je 0x520d19
push eax
lea eax, [ebp - 0x70]
mov ecx, edi
push eax
call fcn.005206a0
push eax
lea ecx, [ebp - 0x40]
call fcn.004191bb
lea ecx, [ebp - 0x70]
call fcn.00404885
jmp 0x520d19
mov edi, dword [ebp - 0x2bc]
push 0x5e5a44
mov ecx, esi
call fcn.00448f30
test eax, eax
je 0x521753
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 0x5e5a54
mov ecx, eax
mov byte [ebp - 4], 4
call fcn.00448f30
mov dword [ebp - 0x2d0], eax
test eax, eax
je 0x521660
push 0
push 0x5e5a60
mov ecx, eax
call fcn.00448950
test eax, eax
je 0x52162f
push 0x1c8
call fcn.00538ef6
mov esi, eax
add esp, 4
mov dword [ebp - 0x30c], esi
mov byte [ebp - 4], 5
test esi, esi
je 0x520dc1
push 0x1c8
push 0
push esi
call fcn.00570de0
add esp, 0xc
mov ecx, esi
call fcn.00523ff0
jmp 0x520dc3
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 0x520de8
mov dword [ecx], eax
add ecx, 4
mov dword [ebp - 0x18], ecx
jmp 0x520e01
lea eax, [ebp - 0x2c4]
push eax
push ecx
lea ecx, [ebp - 0x1c]
call fcn.0051f0b0
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x2d4], eax
push 0x60
lea eax, [ebp - 0xf4]
push 0
push eax
call fcn.00570de0
lea ecx, [edi + 0x18]
add esp, 0xc
cmp dword [ecx + 0x14], 8
mov eax, ecx
mov dword [ebp - 0x314], ecx
jb 0x520e27
mov eax, dword [ecx]
push eax
lea ecx, [ebp - 0x304]
call fcn.00404b51
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.00404b51
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.00404b51
cmp dword [edi + 0x5c], 8
lea ecx, [edi + 0x48]
mov byte [ebp - 4], 8
mov eax, ecx
mov dword [ebp - 0x2d8], ecx
jb 0x520e80
mov eax, dword [ecx]
push eax
lea ecx, [ebp - 0x2f8]
call fcn.00404b51
cmp dword [edi + 0x44], 8
lea eax, [edi + 0x30]
mov byte [ebp - 4], 9
jb 0x520e9c
mov eax, dword [edi + 0x30]
push eax
lea ecx, [ebp - 0x2f4]
call fcn.00404b51
cmp dword [edi + 0x14], 8
mov eax, edi
mov byte [ebp - 4], 0xa
jb 0x520eb6
mov eax, dword [edi]
push eax
lea ecx, [ebp - 0x2f0]
call fcn.00404b51
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.00524b00
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 0x520f1d
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 0x520f3f
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 0x520f61
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 0x520f83
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 0x520fa5
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 0x520fc7
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
movaps xmm0, xmmword [0x5e5a80]
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.0057ac0a
mov ecx, eax
add esp, 4
and ecx, edx
cmp ecx, 0xffffffff
je 0x521842
cmp dword [ebp - 0xb0], eax
jne 0x521021
cmp dword [ebp - 0xac], edx
jne 0x521021
push dword [edi + 0x7c]
lea ecx, [ebp - 0xf4]
push dword [edi + 0x78]
call fcn.00524f50
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.00520140
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 0x5211b0
cmp ebx, edi
je 0x5210ba
lea esi, [ebx + 0x48]
nop word [eax + eax]
lea eax, [ebp - 0x40]
cmp esi, eax
je 0x5210aa
cmp dword [ebp - 0x2c], 8
mov ecx, esi
push dword [ebp - 0x30]
cmovae eax, dword [ebp - 0x40]
push eax
call fcn.004049b3
add esi, 0x7c
lea eax, [esi - 0x48]
cmp eax, edi
jne 0x521090
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 0x52117a
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 0x52183d
imul esi, eax, 0x7c
cmp esi, 0x1000
jb 0x52112c
lea eax, [esi + 0x23]
cmp eax, esi
jbe 0x52183d
push eax
call fcn.00538ef6
add esp, 4
test eax, eax
je 0x521856
lea ecx, [eax + 0x23]
and ecx, 0xffffffe0
mov dword [ecx - 4], eax
jmp 0x52113f
test esi, esi
je 0x52113d
push esi
call fcn.00538ef6
add esp, 4
mov ecx, eax
jmp 0x52113f
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.0051f350
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 0x5211a1
push dword [ebp - 0x30c]
push eax
push edx
call fcn.0051ee20
lea ecx, [ebp - 0x2ec]
mov byte [ebp - 4], 0x13
call fcn.0051fe00
push dword [ebp - 0x2d0]
call fcn.0051f990
mov ebx, eax
add esp, 4
mov dword [ebp - 0x2c4], ebx
test ebx, ebx
je 0x5215db
push 0
push 0x5e59e4
mov ecx, ebx
call fcn.00448950
push 0
push 0x5e5a64
mov ecx, ebx
mov esi, eax
call fcn.00448950
mov edi, eax
test esi, esi
je 0x521261
mov ecx, dword [ebp - 0x2bc]
lea eax, [ebp - 0x70]
push esi
push eax
call fcn.005206a0
cmp dword [ebp - 0x60], 0
mov byte [ebp - 4], 0x16
je 0x521223
cmp dword [ebp - 0x5c], 8
lea eax, [ebp - 0x70]
lea ecx, [ebp - 0xf4]
cmovae eax, dword [ebp - 0x70]
push eax
call fcn.00524c90
mov edx, dword [ebp - 0x5c]
mov byte [ebp - 4], 0x13
cmp edx, 8
jb 0x521261
mov ecx, dword [ebp - 0x70]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x521257
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x521856
push edx
push ecx
call fcn.0056e411
add esp, 8
test edi, edi
je 0x5213d0
call fcn.0053955f
mov ecx, eax
test ecx, ecx
je 0x52184c
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 0x52132c
movzx edi, di
push edi
call fcn.00539418
test eax, eax
je 0x52134d
push edi
push eax
call fcn.00404dd0
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x52134d
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 0x521842
mov ecx, dword [esi - 8]
mov edx, 1
sub edx, dword [esi - 4]
sub ecx, edi
or ecx, edx
jge 0x521302
push edi
lea ecx, [ebp - 0x2b8]
call fcn.0040b181
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 0x521842
mov dword [esi - 0xc], edi
mov byte [edi + esi], 0
jmp 0x52134d
mov ecx, edi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x521331
sub ecx, edx
push ecx
push edi
lea ecx, [ebp - 0x2b8]
call fcn.0040b273
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 0x5213b1
cmp dword [edi + 0xc], 0
jl 0x5213a8
mov eax, dword [ebx]
cmp eax, dword [edi]
jne 0x5213a8
push ebx
call fcn.004318cb
add esp, 4
lea edx, [edi + 0xc]
mov esi, eax
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x521397
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 0x5213b1
push dword [esi - 0xc]
push esi
call fcn.0040b273
mov byte [ebp - 4], 0x13
or eax, 0xffffffff
lock xadd dword [ebx + 0xc], eax
dec eax
test eax, eax
jg 0x5213ca
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 0x5213de
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x308]
call fcn.00404b51
mov edi, dword [ebp - 0x2c0]
lea eax, [ebp - 0x308]
push eax
mov byte [ebp - 4], 0x19
lea ecx, [edi + 0x1ac]
call fcn.00465070
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 0x521428
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 0x521438
mov eax, dword [ecx]
push eax
lea ecx, [ebp - 0x2c8]
call fcn.00404b51
lea eax, [ebp - 0x2c8]
mov byte [ebp - 4], 0x1a
push eax
lea ecx, [edi + 0x1b0]
call fcn.00465070
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 0x52147c
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 0x52148a
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x2cc]
call fcn.00404b51
lea eax, [ebp - 0x2cc]
mov byte [ebp - 4], 0x1b
push eax
lea ecx, [edi + 0x1b4]
call fcn.00465070
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 0x5214ce
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 0x5214de
mov eax, dword [ecx]
push ebx
push eax
lea eax, [ebp - 0x3c0]
push eax
call fcn.005204b0
add esp, 0xc
mov esi, eax
add edi, 0xf4
mov byte [ebp - 4], 0x1c
cmp edi, esi
je 0x521512
cmp dword [esi + 0x14], 8
jb 0x521507
mov eax, dword [esi]
push dword [esi + 0x10]
mov ecx, edi
push eax
call fcn.004049b3
lea eax, [esi + 0x18]
lea ecx, [edi + 0x18]
cmp ecx, eax
je 0x52152f
cmp dword [eax + 0x14], 8
mov edx, eax
jb 0x521526
mov edx, dword [eax]
push dword [eax + 0x10]
push edx
call fcn.004049b3
mov eax, dword [esi + 0x30]
lea ecx, [edi + 0x34]
mov dword [edi + 0x30], eax
lea eax, [esi + 0x34]
cmp ecx, eax
je 0x521552
cmp dword [eax + 0x14], 8
mov edx, eax
jb 0x521549
mov edx, dword [eax]
push dword [eax + 0x10]
push edx
call fcn.004049b3
lea eax, [esi + 0x4c]
lea ecx, [edi + 0x4c]
cmp ecx, eax
je 0x52156f
cmp dword [eax + 0x14], 8
mov edx, eax
jb 0x521566
mov edx, dword [eax]
push dword [eax + 0x10]
push edx
call fcn.004049b3
lea eax, [esi + 0x64]
lea ecx, [edi + 0x64]
cmp ecx, eax
je 0x52158c
cmp dword [eax + 0x14], 8
mov edx, eax
jb 0x521583
mov edx, dword [eax]
push dword [eax + 0x10]
push edx
call fcn.004049b3
lea eax, [esi + 0x7c]
lea ecx, [edi + 0x7c]
cmp ecx, eax
je 0x5215a9
cmp dword [eax + 0x14], 8
mov edx, eax
jb 0x5215a0
mov edx, dword [eax]
push dword [eax + 0x10]
push edx
call fcn.004049b3
add esi, 0x94
lea ecx, [edi + 0x94]
cmp ecx, esi
je 0x5215cc
cmp dword [esi + 0x14], 8
mov eax, esi
jb 0x5215c3
mov eax, dword [esi]
push dword [esi + 0x10]
push eax
call fcn.004049b3
lea ecx, [ebp - 0x3c0]
mov byte [ebp - 4], 0x13
call fcn.0051f580
mov ebx, dword [ebp - 0x2c0]
lea eax, [ebp - 0xf4]
push eax
mov ecx, ebx
call fcn.00524870
mov ecx, dword [ebp - 0x2e0]
mov dword [ebp - 0x2d8], ebx
mov eax, dword [ecx + 4]
cmp eax, dword [ecx + 8]
je 0x52160b
mov dword [eax], ebx
add dword [ecx + 4], 4
jmp 0x521618
lea edx, [ebp - 0x2d8]
push edx
push eax
call fcn.0040bdde
lea ecx, [ebp - 0x28]
call fcn.0051fe00
lea ecx, [ebp - 0xf4]
mov byte [ebp - 4], 4
call fcn.0042fa9f
mov ecx, dword [ebp - 0x2d0]
push 0x5e5a54
call fcn.00449bc0
mov dword [ebp - 0x2d0], eax
test eax, eax
je 0x521654
mov edi, dword [ebp - 0x2bc]
jmp 0x520d75
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 0x52171c
mov eax, ebx
mov dword [ebp - 0x2c8], ebx
cmp eax, esi
je 0x52171c
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.0051fed0
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.00570860
mov eax, dword [ebp - 0x2cc]
add esp, 0xc
add eax, esi
mov ecx, ebx
mov dword [edi + 4], eax
call fcn.00524a30
mov eax, dword [ebp - 0x2c8]
mov ecx, dword [ebp - 0x2dc]
add eax, 4
mov dword [ebp - 0x2c8], eax
cmp eax, dword [ebp - 0x18]
jne 0x5216a0
mov ebx, dword [ebp - 0x2b8]
test ebx, ebx
je 0x521753
mov ecx, dword [ebp - 0x2d4]
mov eax, ebx
sub ecx, ebx
and ecx, 0xfffffffc
cmp ecx, 0x1000
jb 0x521749
mov ebx, dword [ebx - 4]
add ecx, 0x23
sub eax, ebx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x521856
push ecx
push ebx
call fcn.0056e411
add esp, 8
mov edx, dword [ebp - 0x44]
cmp edx, 8
jb 0x52178d
mov ecx, dword [ebp - 0x58]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x521783
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x521856
push edx
push ecx
call fcn.0056e411
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 0x5217db
mov ecx, dword [ebp - 0x40]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x5217d1
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x521856
push edx
push ecx
call fcn.0056e411
add esp, 8
lea ecx, [ebp - 0x2b4]
call fcn.00447b10
mov edx, dword [ebp - 0x80]
cmp edx, 8
jb 0x52181f
mov ecx, dword [ebp - 0x94]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x521815
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x52185b
push edx
push ecx
call fcn.0056e411
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.0056e41f
mov esp, ebp
pop ebp
ret 4
call fcn.00404923
push 0x80070057
call fcn.00404e00
push 0x80004005
call fcn.00404e00
call fcn.00574b50
call fcn.00574b50
int3