Function at 0x52cb88
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
mov ecx, 9
push 0
push 0
dec ecx
jne 0x52cb90
push ecx
push ebx
push esi
push edi
mov ebx, eax
xor eax, eax
push ebp
push 0x52d446
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x557f6c]
mov edx, 0x52d460
call fcn.00404e30
lea eax, [ebp - 0xc]
mov edx, 0x52d4a0
call fcn.00404e74
lea eax, [ebp - 0x30]
mov edx, 0x52d4b4
call fcn.00404e74
mov eax, dword [ebx + 0x5f6]
mov byte [eax + 0x122], 1
mov eax, dword [ebx + 0x5f6]
mov byte [eax + 0x244], 1
mov byte [ebx + 0x5dc], 1
mov dword [ebx + 0x5e1], 0x28
mov dword [ebx + 0x5e5], 0x50
mov byte [ebx + 0x5e9], 1
mov dword [ebx + 0x5f2], 0x3c
mov byte [ebx + 0x951], 1
mov eax, dword [ebx + 0xb80]
mov byte [eax + 0x122], 1
mov eax, dword [ebx + 0xb80]
mov dword [eax + 0x127], 0x19
mov byte [ebx + 0x5ae], 0
xor eax, eax
mov al, byte [ebx + 0xb8]
cmp eax, 7
ja case.0x52cc56.0
jmp dword [eax*4 + 0x52cc5d]
mov eax, dword [ebx + 0x602]
mov byte [eax + 0x36], 1
mov eax, dword [ebx + 0x602]
mov byte [eax + 0x37], 1
mov eax, dword [ebx + 0x602]
lea edi, [eax + 0x39]
mov esi, 0x52d4c0
mov ecx, 0xc
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
mov eax, dword [ebx + 0x602]
mov byte [eax + 0x6c], 1
mov eax, dword [ebx + 0x602]
mov byte [eax + 0x6d], 1
mov eax, dword [ebx + 0x602]
lea edi, [eax + 0x6f]
mov esi, 0x52d4f4
mov ecx, 0xc
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
mov eax, dword [ebx + 0x5fe]
mov byte [eax], 1
mov eax, dword [ebx + 0x5fe]
mov dword [eax + 1], 0x12c
mov eax, dword [ebx + 0x5fe]
mov dword [eax + 5], 1
mov eax, dword [ebx + 0x5fe]
lea edi, [eax + 9]
mov esi, 0x52d528
mov ecx, 0x40
rep movsd dword es:[edi], dword [esi]
jmp case.0x52cc56.0
mov eax, dword [ebx + 0x602]
mov byte [eax + 0x36], 1
mov eax, dword [ebx + 0x602]
mov byte [eax + 0x37], 1
mov eax, dword [ebx + 0x602]
lea edi, [eax + 0x39]
mov esi, 0x52d628
mov ecx, 0xc
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
mov eax, dword [ebx + 0x602]
mov byte [eax + 0x6c], 1
mov eax, dword [ebx + 0x602]
mov byte [eax + 0x6d], 1
mov eax, dword [ebx + 0x602]
lea edi, [eax + 0x6f]
mov esi, 0x52d65c
mov ecx, 0xc
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
mov eax, dword [ebx + 0x5fe]
mov byte [eax], 1
mov eax, dword [ebx + 0x5fe]
mov dword [eax + 1], 0x12c
mov eax, dword [ebx + 0x5fe]
mov dword [eax + 5], 1
mov eax, dword [ebx + 0x5fe]
lea edi, [eax + 9]
mov esi, 0x52d690
mov ecx, 0x40
rep movsd dword es:[edi], dword [esi]
jmp case.0x52cc56.0
push 4
lea eax, [ebx + 0x602]
mov ecx, 1
mov edx, dword [0x49cf38]
call fcn.004062b4
add esp, 4
mov eax, dword [ebx + 0x602]
mov byte [eax], 1
mov eax, dword [ebx + 0x602]
mov byte [eax + 1], 0
mov eax, dword [ebx + 0x602]
lea edi, [eax + 3]
mov esi, 0x52d790
mov ecx, 0xc
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
mov eax, dword [ebx + 0x602]
mov byte [eax + 0x36], 1
mov eax, dword [ebx + 0x602]
mov byte [eax + 0x37], 1
mov eax, dword [ebx + 0x602]
lea edi, [eax + 0x39]
mov esi, 0x52d7c4
mov ecx, 0xc
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
mov eax, dword [ebx + 0x602]
mov byte [eax + 0x6c], 1
mov eax, dword [ebx + 0x602]
mov byte [eax + 0x6d], 1
mov eax, dword [ebx + 0x602]
lea edi, [eax + 0x6f]
mov esi, 0x52d7f8
mov ecx, 0xc
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
mov eax, dword [ebx + 0x602]
mov byte [eax + 0xa2], 1
mov eax, dword [ebx + 0x602]
mov byte [eax + 0xa3], 1
mov eax, dword [ebx + 0x602]
lea edi, [eax + 0xa5]
mov esi, 0x52d82c
mov ecx, 0xc
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
mov eax, dword [ebx + 0x5fa]
mov byte [eax], 1
mov eax, dword [ebx + 0x5fa]
mov dword [eax + 5], 0x46
mov eax, dword [ebx + 0x5fa]
lea edi, [eax + 0xd]
mov esi, 0x52d860
mov ecx, 0x40
rep movsd dword es:[edi], dword [esi]
jmp case.0x52cc56.0
mov eax, dword [ebx + 0x602]
mov byte [eax + 0x36], 1
mov eax, dword [ebx + 0x602]
mov byte [eax + 0x37], 1
mov eax, dword [ebx + 0x602]
lea edi, [eax + 0x39]
mov esi, 0x52d960
mov ecx, 0xc
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
mov eax, dword [ebx + 0x602]
mov byte [eax + 0x6c], 1
mov eax, dword [ebx + 0x602]
mov byte [eax + 0x6d], 1
mov eax, dword [ebx + 0x602]
lea edi, [eax + 0x6f]
mov esi, 0x52d994
mov ecx, 0xc
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
mov eax, dword [ebx + 0x5fe]
mov byte [eax], 1
mov eax, dword [ebx + 0x5fe]
mov dword [eax + 1], 0x12c
mov eax, dword [ebx + 0x5fe]
mov dword [eax + 5], 1
mov eax, dword [ebx + 0x5fe]
lea edi, [eax + 9]
mov esi, 0x52d9c8
mov ecx, 0x40
rep movsd dword es:[edi], dword [esi]
jmp case.0x52cc56.0
mov eax, dword [ebx + 0x602]
mov byte [eax + 0x36], 1
mov eax, dword [ebx + 0x602]
mov byte [eax + 0x37], 1
mov eax, dword [ebx + 0x602]
lea edi, [eax + 0x39]
mov esi, 0x52dac8
mov ecx, 0xc
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
mov eax, dword [ebx + 0x602]
mov byte [eax + 0x6c], 1
mov eax, dword [ebx + 0x602]
mov byte [eax + 0x6d], 1
mov eax, dword [ebx + 0x602]
lea edi, [eax + 0x6f]
mov esi, 0x52dafc
mov ecx, 0xc
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
mov eax, dword [ebx + 0x5fe]
mov byte [eax], 1
mov eax, dword [ebx + 0x5fe]
mov dword [eax + 1], 0x12c
mov eax, dword [ebx + 0x5fe]
mov dword [eax + 5], 1
mov eax, dword [ebx + 0x5fe]
lea edi, [eax + 9]
mov esi, 0x52db30
mov ecx, 0x40
rep movsd dword es:[edi], dword [esi]
jmp case.0x52cc56.0
mov eax, dword [ebx + 0x602]
mov byte [eax + 0x36], 1
mov eax, dword [ebx + 0x602]
mov byte [eax + 0x37], 1
mov eax, dword [ebx + 0x602]
lea edi, [eax + 0x39]
mov esi, 0x52dc30
mov ecx, 0xc
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
mov eax, dword [ebx + 0x602]
mov byte [eax + 0x6c], 1
mov eax, dword [ebx + 0x602]
mov byte [eax + 0x6d], 1
mov eax, dword [ebx + 0x602]
lea edi, [eax + 0x6f]
mov esi, 0x52dc64
mov ecx, 0xc
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
mov eax, dword [ebx + 0x5fe]
mov byte [eax], 1
mov eax, dword [ebx + 0x5fe]
mov dword [eax + 1], 0x12c
mov eax, dword [ebx + 0x5fe]
mov dword [eax + 5], 1
mov eax, dword [ebx + 0x5fe]
lea edi, [eax + 9]
mov esi, 0x52dc98
mov ecx, 0x40
rep movsd dword es:[edi], dword [esi]
jmp case.0x52cc56.0
mov eax, dword [ebx + 0x602]
mov byte [eax + 0x36], 1
mov eax, dword [ebx + 0x602]
mov byte [eax + 0x37], 1
mov eax, dword [ebx + 0x602]
lea edi, [eax + 0x39]
mov esi, 0x52dd98
mov ecx, 0xc
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
mov eax, dword [ebx + 0x602]
mov byte [eax + 0x6c], 1
mov eax, dword [ebx + 0x602]
mov byte [eax + 0x6d], 1
mov eax, dword [ebx + 0x602]
lea edi, [eax + 0x6f]
mov esi, 0x52ddcc
mov ecx, 0xc
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
mov eax, dword [ebx + 0x5fe]
mov byte [eax], 1
mov eax, dword [ebx + 0x5fe]
mov dword [eax + 1], 0x12c
mov eax, dword [ebx + 0x5fe]
mov dword [eax + 5], 1
mov eax, dword [ebx + 0x5fe]
lea edi, [eax + 9]
mov esi, 0x52de00
mov ecx, 0x40
rep movsd dword es:[edi], dword [esi]
push 0
lea eax, [ebx + 0x31de8]
mov ecx, 1
mov edx, dword [0x515b70]
call fcn.004062b4
add esp, 4
mov eax, ebx
call fcn.00537fac
xor eax, eax
mov dword [ebp - 0x34], eax
mov eax, ebx
call fcn.00524d3c
test al, al
jne 0x52d401
mov eax, dword [0x55d330]
mov edx, dword [eax + 0x1d0]
add edx, dword [ebx + 0x9c]
add edx, 8
mov eax, ebx
call fcn.0053ea94
mov dword [ebp - 0x24], eax
mov eax, dword [0x55d330]
mov edx, dword [eax + 0x1d0]
add edx, dword [ebx + 0x9c]
add edx, 8
add edx, 0x44
mov eax, ebx
call fcn.0053ea94
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x24]
cmp eax, dword [ebp - 0x28]
jb 0x52d186
push ebx
call fcn.0054095c
push 0x3e8
call sub.kernel32.dll_Sleep_1
mov eax, ebx
call fcn.0052b2c4
xor ecx, ecx
mov edx, dword [ebx + 0xfb2]
mov eax, ebx
call fcn.0053dcdc
xor ecx, ecx
mov edx, dword [ebx + 0xfb6]
mov eax, ebx
call fcn.0053dd3c
mov eax, dword [ebx + 0xb4]
cmp eax, dword [ebx + 0xfba]
jb 0x52d1f4
mov eax, dword [0x558400]
push eax
push 0
lea eax, [ebx + 0x468]
push eax
push 0x543814
push 0
push 0
call sub.kernel32.dll_CreateThread_1
mov edx, dword [0x5580d0]
mov dword [edx], eax
mov eax, dword [0x558650]
mov eax, dword [eax]
call fcn.00451d50
call fcn.00543064
jmp 0x52d401
mov edx, dword [ebp - 0x30]
mov eax, ebx
call fcn.00523b40
mov esi, eax
test esi, esi
jne 0x52d330
lea eax, [ebp - 0x38]
push eax
lea edx, [ebp - 0x38]
or ecx, 0xffffffff
mov eax, 0x52df08
call fcn.0040b120
mov edx, dword [ebp - 0x38]
mov eax, ebx
call fcn.00529688
lea ecx, [ebp - 0x20]
mov edx, dword [ebp - 0x30]
mov eax, ebx
call fcn.005238bc
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x52d120
lea ecx, [ebp - 0x18]
mov edx, dword [ebp - 8]
add edx, 0x84
mov eax, ebx
call fcn.0053e93c
cmp dword [ebp - 0x18], 0
je 0x52d120
lea eax, [ebp - 0x1c]
push eax
mov ecx, 0x52df20
mov edx, 0x52df2c
mov eax, dword [ebp - 0x18]
call fcn.00546954
mov eax, dword [ebp - 0x1c]
call fcn.00409cc8
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x1c]
push eax
mov ecx, 0x52df3c
mov edx, 0x52df4c
mov eax, dword [ebp - 0x18]
call fcn.00546954
lea eax, [ebp - 0x3c]
push eax
mov ecx, 0x52df5c
mov edx, 0x52df68
mov eax, dword [ebp - 0x1c]
call fcn.00546954
mov edx, dword [ebp - 0x3c]
lea eax, [ebp - 0x1c]
call fcn.00404e74
lea eax, [ebp - 0xc]
mov edx, dword [ebp - 0x1c]
call fcn.00404e74
mov eax, dword [ebp - 0x30]
push eax
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 0x10]
mov eax, ebx
call fcn.00525494
test al, al
jne 0x52d330
inc dword [ebp - 0x34]
cmp dword [ebp - 0x34], 5
jbe 0x52d321
mov eax, dword [ebx + 0x31de8]
call fcn.004060d8
inc eax
push eax
lea eax, [ebx + 0x31de8]
mov ecx, 1
mov edx, dword [0x515b70]
call fcn.004062b4
add esp, 4
mov eax, dword [ebx + 0x31de8]
call fcn.004060d8
mov edx, dword [ebx + 0x31de8]
lea eax, [edx + eax*4 - 4]
mov edx, dword [ebp - 0x20]
call fcn.00404e30
push 0x1f4
call sub.kernel32.dll_Sleep_1
jmp 0x52d120
xor eax, eax
mov dword [ebp - 0x34], eax
mov edx, dword [ebp - 0x30]
mov eax, ebx
call fcn.00523b40
mov esi, eax
test esi, esi
je 0x52d378
lea ecx, [ebp - 0x2c]
mov edx, esi
mov eax, ebx
call fcn.00523b0c
lea eax, [ebp - 0x40]
push eax
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x48], eax
mov byte [ebp - 0x44], 0xb
lea edx, [ebp - 0x48]
xor ecx, ecx
mov eax, 0x52df74
call fcn.0040b120
mov edx, dword [ebp - 0x40]
mov eax, ebx
call fcn.00529688
lea edx, [esi + 0xc]
mov eax, ebx
call fcn.00541a04
mov edi, eax
cmp edi, 0xff8
jne 0x52d396
push 0x1388
call sub.kernel32.dll_Sleep_1
mov eax, ebx
call fcn.0052aa30
mov edx, dword [ebp - 0x30]
mov eax, ebx
call fcn.00528ba0
test al, al
je 0x52d120
mov edx, dword [ebp - 0x30]
mov eax, ebx
call fcn.00523b40
mov esi, eax
test esi, esi
je 0x52d3f2
lea ecx, [ebp - 0x2c]
mov edx, esi
mov eax, ebx
call fcn.00523b0c
lea eax, [ebp - 0x4c]
push eax
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x48], eax
mov byte [ebp - 0x44], 0xb
lea edx, [ebp - 0x48]
xor ecx, ecx
mov eax, 0x52df8c
call fcn.0040b120
mov edx, dword [ebp - 0x4c]
mov eax, ebx
call fcn.00529688
mov edx, dword [ebp - 0x30]
mov eax, ebx
call fcn.005288e0
jmp 0x52d120
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x52d44d
lea eax, [ebp - 0x4c]
call fcn.00404ddc
lea eax, [ebp - 0x40]
mov edx, 3
call fcn.00404e00
lea eax, [ebp - 0x30]
mov edx, 2
call fcn.00404e00
lea eax, [ebp - 0x20]
mov edx, 3
call fcn.00404e00
lea eax, [ebp - 0xc]
call fcn.00404ddc
ret