Function at 0x574424
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffe0
push ebx
push esi
push edi
xor ecx, ecx
mov dword [ebp - 0x20], ecx
mov dword [ebp - 4], ecx
mov dword [ebp - 0x10], edx
mov dword [ebp - 8], eax
xor eax, eax
push ebp
push 0x574a06
push dword fs:[eax]
mov dword fs:[eax], esp
cmp dword [ebp - 0x10], 0
je 0x5749e2
push 0
lea eax, [ebp - 4]
mov ecx, 1
mov edx, dword [0x574244]
call fcn.0040831c
add esp, 4
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xd0]
cmp word [eax + 0x4e], 0
jle 0x5745fd
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x19c]
mov edx, dword [eax]
call dword [edx + 0x24]
push eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x19c]
mov edx, dword [eax]
call dword [edx + 0x30]
pop edx
call fcn.005280f0
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 8]
mov edx, dword [eax + 0x19c]
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
call dword [ecx + 8]
push 0xff00ff
mov edx, 0x51e950
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x14]
call fcn.0051e864
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x19c]
call fcn.0043efec
call fcn.00439e30
push eax
call fcn.00409f4c
mov dword [ebp - 0x18], eax
xor eax, eax
push ebp
push 0x5745f6
push dword fs:[eax]
mov dword fs:[eax], esp
push ebp
mov eax, 0x574a20
call fcn.005742bc
pop ecx
push ebp
mov eax, 0x574a44
call fcn.005742bc
pop ecx
push ebp
mov eax, 0x574a6c
call fcn.005742bc
pop ecx
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xd0]
cmp word [eax + 0x4e], 1
jne 0x57457d
push ebp
mov eax, 0x574a90
call fcn.005742bc
pop ecx
push ebp
mov eax, 0x574ab0
call fcn.005742bc
pop ecx
push ebp
mov eax, 0x574ad0
call fcn.005742bc
pop ecx
push ebp
mov eax, 0x574af0
call fcn.005742bc
pop ecx
push ebp
mov eax, 0x574b10
call fcn.005742bc
pop ecx
push ebp
mov eax, 0x574b30
call fcn.005742bc
pop ecx
push ebp
mov eax, 0x574b50
call fcn.005742bc
pop ecx
push 0xcc0020
push 0
push 0
mov eax, dword [ebp - 0x14]
call fcn.0043efec
call fcn.00439e30
push eax
mov eax, dword [ebp - 0x14]
mov edx, dword [eax]
call dword [edx + 0x24]
push eax
mov eax, dword [ebp - 0x14]
mov edx, dword [eax]
call dword [edx + 0x30]
push eax
push 0
push 0
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x19c]
call fcn.0043efec
call fcn.00439e30
push eax
call fcn.00409d2c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x574618
mov eax, dword [ebp - 0x14]
call fcn.0040442c
mov eax, dword [ebp - 0x18]
push eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x19c]
call fcn.0043efec
call fcn.00439e30
push eax
call fcn.00409f3c
ret
push 0xff00ff
mov edx, 0x51e950
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x19c]
mov ecx, dword [ebp - 0x10]
call fcn.0051e864
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xd4]
call fcn.00408154
dec eax
test eax, eax
jl 0x5746cc
inc eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0xc], 0
mov eax, dword [ebp - 0xc]
mov edx, eax
add eax, eax
add eax, eax
add eax, eax
sub eax, edx
mov edx, dword [ebp - 8]
mov edx, dword [edx + 0xd4]
cmp dword [edx + eax*8], 0
je 0x5746c0
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xd0]
cmp word [eax + 0x4e], 0
jle 0x574695
mov eax, dword [ebp - 4]
call fcn.00408154
mov edx, eax
dec edx
xor eax, eax
mov edi, edx
test edi, edi
jl 0x574692
inc edi
xor ebx, ebx
mov edx, dword [ebp - 4]
mov edx, dword [edx + ebx*4]
cmp edx, dword [ebp - 0xc]
jne 0x57468e
mov eax, 1
jmp 0x574692
inc ebx
dec edi
jne 0x57467c
dec eax
je 0x5746c0
push 0xff00ff
mov eax, dword [ebp - 0xc]
mov edx, eax
add eax, eax
add eax, eax
add eax, eax
sub eax, edx
mov edx, dword [ebp - 8]
mov edx, dword [edx + 0xd4]
mov eax, dword [edx + eax*8]
mov edx, 0x51e950
mov ecx, dword [ebp - 0x10]
call fcn.0051e864
inc dword [ebp - 0xc]
dec dword [ebp - 0x1c]
jne 0x57463a
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xdc]
call fcn.00408154
dec eax
test eax, eax
jl 0x57496f
inc eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0xc], 0
imul eax, dword [ebp - 0xc], 0x43
mov edx, dword [ebp - 8]
mov edx, dword [edx + 0xdc]
lea esi, [edx + eax*4]
mov edx, dword [esi + 0xa0]
mov eax, dword [ebp - 0x10]
call fcn.0051ef14
mov dword [esi + 0xa0], eax
mov edx, dword [esi + 0xcc]
mov eax, dword [ebp - 0x10]
call fcn.0051ef14
mov dword [esi + 0xcc], eax
mov edx, dword [esi + 0x104]
mov eax, dword [ebp - 0x10]
call fcn.0051ef14
mov dword [esi + 0x104], eax
mov edx, dword [esi + 0x100]
mov eax, dword [ebp - 0x10]
call fcn.0051ef14
mov dword [esi + 0x100], eax
mov ebx, 1
mov edi, dword [esi + ebx*4 + 0xb4]
cmp edi, 0xffffffff
je 0x574770
mov edx, edi
mov eax, dword [ebp - 0x10]
call fcn.0051ef14
mov dword [esi + ebx*4 + 0xb4], eax
mov edi, dword [esi + ebx*4 + 0xe0]
cmp edi, 0xffffffff
je 0x57478d
mov edx, edi
mov eax, dword [ebp - 0x10]
call fcn.0051ef14
mov dword [esi + ebx*4 + 0xe0], eax
inc ebx
cmp ebx, 6
jne 0x574753
lea eax, [ebp - 0x20]
mov edx, dword [esi + 0xac]
mov ecx, 0
call fcn.004069a4
mov eax, dword [ebp - 0x20]
mov edx, 0x574b64
call fcn.005714b8
mov ecx, 5
cdq
idiv ecx
mov edi, eax
dec edi
test edi, edi
jl 0x57480b
inc edi
xor ebx, ebx
lea eax, [ebx + ebx*4]
mov edx, dword [esi + 0xb0]
mov edx, dword [edx + eax*4]
mov eax, dword [ebp - 0x10]
call fcn.0051ef14
lea edx, [ebx + ebx*4]
mov ecx, dword [esi + 0xb0]
mov dword [ecx + edx*4], eax
lea eax, [ebx + ebx*4]
mov edx, dword [esi + 0xb0]
mov edx, dword [edx + eax*4 + 4]
mov eax, dword [ebp - 0x10]
call fcn.0051ef14
lea edx, [ebx + ebx*4]
mov ecx, dword [esi + 0xb0]
mov dword [ecx + edx*4 + 4], eax
inc ebx
dec edi
jne 0x5747c5
mov eax, dword [esi + 0xdc]
call fcn.00408154
mov edi, eax
dec edi
test edi, edi
jl 0x574866
inc edi
xor ebx, ebx
lea eax, [ebx + ebx*4]
mov edx, dword [esi + 0xdc]
mov edx, dword [edx + eax*4]
mov eax, dword [ebp - 0x10]
call fcn.0051ef14
lea edx, [ebx + ebx*4]
mov ecx, dword [esi + 0xdc]
mov dword [ecx + edx*4], eax
lea eax, [ebx + ebx*4]
mov edx, dword [esi + 0xdc]
mov edx, dword [edx + eax*4 + 4]
mov eax, dword [ebp - 0x10]
call fcn.0051ef14
lea edx, [ebx + ebx*4]
mov ecx, dword [esi + 0xdc]
mov dword [ecx + edx*4 + 4], eax
inc ebx
dec edi
jne 0x574820
xor ebx, ebx
mov edi, ebx
add edi, edi
add edi, edi
add edi, edi
sub edi, ebx
cmp dword [esi + edi*8 + 0xc], 0xffffffff
je 0x574893
mov eax, ebx
add eax, eax
add eax, eax
add eax, eax
sub eax, ebx
mov edx, dword [esi + eax*8 + 0xc]
mov eax, dword [ebp - 0x10]
call fcn.0051ef14
mov dword [esi + edi*8 + 0xc], eax
cmp dword [esi + edi*8 + 0x38], 0xffffffff
je 0x5748b4
mov eax, ebx
add eax, eax
add eax, eax
add eax, eax
sub eax, ebx
mov edx, dword [esi + eax*8 + 0x38]
mov eax, dword [ebp - 0x10]
call fcn.0051ef14
mov dword [esi + edi*8 + 0x38], eax
cmp dword [esi + edi*8 + 0x10], 0xffffffff
je 0x5748d5
mov eax, ebx
add eax, eax
add eax, eax
add eax, eax
sub eax, ebx
mov edx, dword [esi + eax*8 + 0x10]
mov eax, dword [ebp - 0x10]
call fcn.0051ef14
mov dword [esi + edi*8 + 0x10], eax
cmp dword [esi + edi*8 + 0x14], 0xffffffff
je 0x5748f6
mov eax, ebx
add eax, eax
add eax, eax
add eax, eax
sub eax, ebx
mov edx, dword [esi + eax*8 + 0x14]
mov eax, dword [ebp - 0x10]
call fcn.0051ef14
mov dword [esi + edi*8 + 0x14], eax
cmp dword [esi + edi*8 + 0x18], 0xffffffff
je 0x574917
mov eax, ebx
add eax, eax
add eax, eax
add eax, eax
sub eax, ebx
mov edx, dword [esi + eax*8 + 0x18]
mov eax, dword [ebp - 0x10]
call fcn.0051ef14
mov dword [esi + edi*8 + 0x18], eax
cmp dword [esi + edi*8 + 0x1c], 0xffffffff
je 0x574938
mov eax, ebx
add eax, eax
add eax, eax
add eax, eax
sub eax, ebx
mov edx, dword [esi + eax*8 + 0x1c]
mov eax, dword [ebp - 0x10]
call fcn.0051ef14
mov dword [esi + edi*8 + 0x1c], eax
cmp dword [esi + edi*8 + 0x20], 0xffffffff
je 0x574959
mov eax, ebx
add eax, eax
add eax, eax
add eax, eax
sub eax, ebx
mov edx, dword [esi + eax*8 + 0x20]
mov eax, dword [ebp - 0x10]
call fcn.0051ef14
mov dword [esi + edi*8 + 0x20], eax
inc ebx
cmp ebx, 2
jne 0x574868
inc dword [ebp - 0xc]
dec dword [ebp - 0x1c]
jne 0x5746ee
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xd0]
mov edx, dword [eax + 0x20]
mov eax, dword [ebp - 0x10]
call fcn.0051ef14
mov edx, dword [ebp - 8]
mov edx, dword [edx + 0xd0]
mov dword [edx + 0x20], eax
xor ebx, ebx
mov eax, ebx
cmp al, 0x1f
ja 0x5749a1
and eax, 0x7f
bt dword [0x652120], eax
jae 0x5749c4
mov esi, ebx
and esi, 0x7f
mov eax, dword [ebp - 8]
mov edx, dword [eax + esi*4 + 0x1cc]
mov eax, dword [ebp - 0x10]
call fcn.0051ef14
mov edx, dword [ebp - 8]
mov dword [edx + esi*4 + 0x1cc], eax
inc ebx
cmp bl, 0x1c
jne 0x574991
push 0
lea eax, [ebp - 4]
mov ecx, 1
mov edx, dword [0x574244]
call fcn.0040831c
add esp, 4
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x574a0d
lea eax, [ebp - 0x20]
call fcn.004056f8
lea eax, [ebp - 4]
mov edx, dword [0x574244]
call fcn.00408328
ret