Function at 0x55c9e4
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x35
push 0
push 0
dec ecx
jne 0x55c9ec
push ebx
push esi
push edi
xor eax, eax
push ebp
push 0x55d349
push dword fs:[eax]
mov dword fs:[eax], esp
mov dword [ebp - 4], 1
mov edx, dword [0x83a4b8]
mov edx, dword [edx + 0xd4]
lea eax, [ebp - 8]
mov ecx, 0x55d364
call fcn.0040545c
mov eax, dword [0x83a8f8]
mov eax, dword [eax]
mov ebx, dword [eax + 8]
dec ebx
test ebx, ebx
jl 0x55ca53
inc ebx
xor esi, esi
mov eax, dword [0x83a8f8]
mov eax, dword [eax]
mov edx, esi
call fcn.004212e4
mov edx, dword [0x492000]
call fcn.00406240
inc esi
dec ebx
jne 0x55ca36
mov eax, dword [0x83a8f8]
mov eax, dword [eax]
mov edx, dword [eax]
call dword [edx + 8]
mov eax, dword [0x839b34]
mov eax, dword [eax]
mov ebx, dword [eax + 8]
dec ebx
test ebx, ebx
jl 0x55ca8e
inc ebx
xor esi, esi
mov eax, dword [0x839b34]
mov eax, dword [eax]
mov edx, esi
call fcn.004212e4
mov edx, dword [0x492000]
call fcn.00406240
inc esi
dec ebx
jne 0x55ca71
mov eax, dword [0x839b34]
mov eax, dword [eax]
mov edx, dword [eax]
call dword [edx + 8]
mov eax, dword [0x839c90]
mov eax, dword [eax]
mov ebx, dword [eax + 8]
dec ebx
test ebx, ebx
jl 0x55cac9
inc ebx
xor esi, esi
mov eax, dword [0x839c90]
mov eax, dword [eax]
mov edx, esi
call fcn.004212e4
mov edx, dword [0x492000]
call fcn.00406240
inc esi
dec ebx
jne 0x55caac
mov eax, dword [0x839c90]
mov eax, dword [eax]
mov edx, dword [eax]
call dword [edx + 8]
mov eax, dword [0x839f88]
mov eax, dword [eax]
mov ebx, dword [eax + 8]
dec ebx
test ebx, ebx
jl 0x55cb04
inc ebx
xor esi, esi
mov eax, dword [0x839f88]
mov eax, dword [eax]
mov edx, esi
call fcn.004212e4
mov edx, dword [0x492000]
call fcn.00406240
inc esi
dec ebx
jne 0x55cae7
mov eax, dword [0x839f88]
mov eax, dword [eax]
mov edx, dword [eax]
call dword [edx + 8]
mov eax, dword [0x839a7c]
mov eax, dword [eax]
mov ebx, dword [eax + 8]
dec ebx
test ebx, ebx
jl 0x55cb3f
inc ebx
xor esi, esi
mov eax, dword [0x839a7c]
mov eax, dword [eax]
mov edx, esi
call fcn.004212e4
mov edx, dword [0x492000]
call fcn.00406240
inc esi
dec ebx
jne 0x55cb22
mov eax, dword [0x839a7c]
mov eax, dword [eax]
mov edx, dword [eax]
call dword [edx + 8]
mov eax, dword [0x83a170]
mov eax, dword [eax]
mov ebx, dword [eax + 8]
dec ebx
test ebx, ebx
jl 0x55cb7a
inc ebx
xor esi, esi
mov eax, dword [0x83a170]
mov eax, dword [eax]
mov edx, esi
call fcn.004212e4
mov edx, dword [0x492000]
call fcn.00406240
inc esi
dec ebx
jne 0x55cb5d
mov eax, dword [0x83a170]
mov eax, dword [eax]
mov edx, dword [eax]
call dword [edx + 8]
mov eax, dword [ebp - 8]
call fcn.0040be8c
test al, al
je 0x55d11c
mov dl, 1
mov eax, dword [0x41ed6c]
call fcn.004041c0
mov dword [ebp - 0x10], eax
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax]
call dword [ecx + 0x68]
mov eax, dword [ebp - 0x10]
mov edx, dword [eax]
call dword [edx + 0x14]
mov ebx, eax
dec ebx
test ebx, ebx
jl 0x55d11c
inc ebx
xor esi, esi
lea ecx, [ebp - 0xc]
mov edx, esi
mov eax, dword [ebp - 0x10]
mov edi, dword [eax]
call dword [edi + 0xc]
cmp dword [ebp - 0xc], 0
je case.0x55d051.0
mov eax, dword [ebp - 0xc]
cmp byte [eax], 0x3b
je case.0x55d051.0
push 1
lea eax, [ebp - 0x54]
push eax
mov byte [ebp - 0x58], 0x20
mov byte [ebp - 0x57], 9
lea ecx, [ebp - 0x58]
lea edx, [ebp - 0x14]
mov eax, dword [ebp - 0xc]
call fcn.0049136c
mov edx, dword [ebp - 0x54]
lea eax, [ebp - 0xc]
call fcn.004051d8
push 1
lea eax, [ebp - 0x5c]
push eax
mov byte [ebp - 0x58], 0x20
mov byte [ebp - 0x57], 9
lea ecx, [ebp - 0x58]
lea edx, [ebp - 0x18]
mov eax, dword [ebp - 0xc]
call fcn.0049136c
mov edx, dword [ebp - 0x5c]
lea eax, [ebp - 0xc]
call fcn.004051d8
push 1
lea eax, [ebp - 0x60]
push eax
mov byte [ebp - 0x58], 0x20
mov byte [ebp - 0x57], 9
lea ecx, [ebp - 0x58]
lea edx, [ebp - 0x1c]
mov eax, dword [ebp - 0xc]
call fcn.0049136c
mov edx, dword [ebp - 0x60]
lea eax, [ebp - 0xc]
call fcn.004051d8
push 1
lea eax, [ebp - 0x64]
push eax
mov byte [ebp - 0x58], 0x20
mov byte [ebp - 0x57], 9
lea ecx, [ebp - 0x58]
lea edx, [ebp - 0x4c]
mov eax, dword [ebp - 0xc]
call fcn.0049136c
mov edx, dword [ebp - 0x64]
lea eax, [ebp - 0xc]
call fcn.004051d8
push 1
lea eax, [ebp - 0x68]
push eax
mov byte [ebp - 0x58], 0x20
mov byte [ebp - 0x57], 9
lea ecx, [ebp - 0x58]
lea edx, [ebp - 0x20]
mov eax, dword [ebp - 0xc]
call fcn.0049136c
mov edx, dword [ebp - 0x68]
lea eax, [ebp - 0xc]
call fcn.004051d8
push 1
lea eax, [ebp - 0x6c]
push eax
mov byte [ebp - 0x58], 0x20
mov byte [ebp - 0x57], 9
lea ecx, [ebp - 0x58]
lea edx, [ebp - 0x24]
mov eax, dword [ebp - 0xc]
call fcn.0049136c
mov edx, dword [ebp - 0x6c]
lea eax, [ebp - 0xc]
call fcn.004051d8
push 1
lea eax, [ebp - 0x70]
push eax
mov byte [ebp - 0x58], 0x20
mov byte [ebp - 0x57], 9
lea ecx, [ebp - 0x58]
lea edx, [ebp - 0x28]
mov eax, dword [ebp - 0xc]
call fcn.0049136c
mov edx, dword [ebp - 0x70]
lea eax, [ebp - 0xc]
call fcn.004051d8
push 1
lea eax, [ebp - 0x74]
push eax
mov byte [ebp - 0x58], 0x20
mov byte [ebp - 0x57], 9
lea ecx, [ebp - 0x58]
lea edx, [ebp - 0x2c]
mov eax, dword [ebp - 0xc]
call fcn.0049136c
mov edx, dword [ebp - 0x74]
lea eax, [ebp - 0xc]
call fcn.004051d8
cmp dword [ebp - 0x14], 0
je 0x55d10d
cmp dword [ebp - 0x18], 0
je 0x55d10d
cmp dword [ebp - 0x1c], 0
je 0x55d10d
cmp dword [ebp - 0x2c], 0
je 0x55d10d
mov eax, dword [0x8391d8]
mov eax, dword [eax]
mov edx, dword [ebp - 0x14]
call fcn.0076be5c
mov edi, eax
test edi, edi
jne 0x55cd71
mov eax, dword [ebp - 0x14]
mov edx, 0x55d37c
call fcn.0040555c
jne case.0x55d051.0
mov edx, dword [0x492000]
mov eax, 0x48
call fcn.0040622c
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x50]
add eax, 0x2c
xor ecx, ecx
mov edx, 8
call fcn.00490da8
mov eax, dword [ebp - 0x50]
add eax, 0x38
mov edx, dword [0x491fb8]
call fcn.00405db8
xor ecx, ecx
mov edx, 8
call fcn.00490da0
mov edx, dword [0x491fdc]
mov eax, dword [ebp - 0x50]
add eax, 0x40
call fcn.00405db8
xor ecx, ecx
mov edx, 8
call fcn.00490da0
lea edx, reloc.kernel32.dll_DeleteCriticalSection
mov eax, dword [ebp - 0x14]
call fcn.0040b510
mov edx, dword [ebp - reloc.kernel32.dll_DeleteCriticalSection]
lea eax, reloc.kernel32.dll_DeleteCriticalSection
mov ecx, 0xff
call fcn.004053ec
lea edx, reloc.kernel32.dll_DeleteCriticalSection
mov eax, dword [ebp - 0x50]
inc eax
mov cl, 0x1e
call fcn.0040387c
xor edx, edx
mov eax, dword [ebp - 0x18]
call fcn.0040ba78
mov edx, dword [ebp - 0x50]
mov dword [edx + 0x20], eax
xor edx, edx
mov eax, dword [ebp - 0x1c]
call fcn.0040ba78
mov edx, dword [ebp - 0x50]
mov dword [edx + 0x24], eax
xor edx, edx
mov eax, dword [ebp - 0x4c]
call fcn.0040ba78
mov edx, dword [ebp - 0x50]
mov dword [edx + 0x28], eax
push 1
lea eax, reloc.kernel32.dll_DeleteCriticalSection
push eax
mov byte [ebp - 0x58], 0x3a
mov byte [ebp - 0x57], 9
lea ecx, [ebp - 0x58]
lea edx, [ebp - 0x30]
mov eax, dword [ebp - 0x20]
call fcn.0049136c
mov edx, dword [ebp - reloc.kernel32.dll_DeleteCriticalSection]
lea eax, [ebp - 0x20]
call fcn.004051d8
push 1
lea eax, reloc.kernel32.dll_DeleteCriticalSection
push eax
mov byte [ebp - 0x58], 0x3a
mov byte [ebp - 0x57], 9
lea ecx, [ebp - 0x58]
lea edx, [ebp - 0x34]
mov eax, dword [ebp - 0x20]
call fcn.0049136c
mov edx, dword [ebp - reloc.kernel32.dll_DeleteCriticalSection]
lea eax, [ebp - 0x20]
call fcn.004051d8
or edx, reloc.kernel32.dll_DeleteCriticalSection
mov eax, dword [ebp - 0x30]
call fcn.0040ba78
mov edx, dword [ebp - 0x50]
mov dword [edx + 0x2c], eax
xor edx, edx
mov eax, dword [ebp - 0x34]
call fcn.0040ba78
test eax, eax
setne al
mov edx, dword [ebp - 0x50]
mov byte [edx + 0x30], al
push 1
lea eax, reloc.kernel32.dll_DeleteCriticalSection
push eax
mov byte [ebp - 0x58], 0x3a
mov byte [ebp - 0x57], 9
lea ecx, [ebp - 0x58]
lea edx, [ebp - 0x38]
mov eax, dword [ebp - 0x24]
call fcn.0049136c
mov edx, dword [ebp - reloc.kernel32.dll_DeleteCriticalSection]
lea eax, [ebp - 0x24]
call fcn.004051d8
push 1
lea eax, reloc.kernel32.dll_DeleteCriticalSection
push eax
mov byte [ebp - 0x58], 0x3a
mov byte [ebp - 0x57], 9
lea ecx, [ebp - 0x58]
lea edx, [ebp - 0x3c]
mov eax, dword [ebp - 0x24]
call fcn.0049136c
mov edx, dword [ebp - reloc.kernel32.dll_DeleteCriticalSection]
lea eax, [ebp - 0x24]
call fcn.004051d8
push 1
lea eax, reloc.kernel32.dll_DeleteCriticalSection
push eax
mov byte [ebp - 0x58], 0x3a
mov byte [ebp - 0x57], 9
lea ecx, [ebp - 0x58]
lea edx, [ebp - 0x40]
mov eax, dword [ebp - 0x24]
call fcn.0049136c
mov edx, dword [ebp - reloc.kernel32.dll_DeleteCriticalSection]
lea eax, [ebp - 0x24]
call fcn.004051d8
xor edx, edx
mov eax, dword [ebp - 0x38]
call fcn.0040ba78
mov edi, eax
lea edx, reloc.kernel32.dll_DeleteCriticalSection
mov eax, dword [ebp - 0x3c]
call fcn.0040b510
mov edx, dword [ebp - reloc.kernel32.dll_DeleteCriticalSection]
mov eax, dword [ebp - 0x50]
add eax, 0x38
call fcn.00405194
xor edx, edx
mov eax, dword [ebp - 0x40]
call fcn.0040ba78
test eax, eax
setne al
mov edx, dword [ebp - 0x50]
mov byte [edx + 0x3c], al
mov eax, dword [ebp - 0x50]
cmp dword [eax + 0x38], 0
jne 0x55cf95
mov eax, dword [ebp - 0x50]
add eax, 0x38
mov edx, 0x55d37c
call fcn.00405194
xor edx, edx
mov eax, dword [ebp - 0x28]
call fcn.0040ba78
xor edx, edx
call fcn.00491c00
mov edx, dword [ebp - 0x50]
mov dword [edx + 0x34], eax
push 1
lea eax, reloc.kernel32.dll_DeleteCriticalSection
push eax
mov byte [ebp - 0x58], 0x3a
mov byte [ebp - 0x57], 9
lea ecx, [ebp - 0x58]
lea edx, [ebp - 0x44]
mov eax, dword [ebp - 0x2c]
call fcn.0049136c
mov edx, dword [ebp - reloc.kernel32.dll_DeleteCriticalSection]
lea eax, [ebp - 0x2c]
call fcn.004051d8
push 1
lea eax, reloc.kernel32.dll_DeleteCriticalSection
push eax
mov byte [ebp - 0x58], 0x3a
mov byte [ebp - 0x57], 9
lea ecx, [ebp - 0x58]
lea edx, [ebp - 0x48]
mov eax, dword [ebp - 0x2c]
call fcn.0049136c
mov edx, dword [ebp - reloc.kernel32.dll_DeleteCriticalSection]
lea eax, [ebp - 0x2c]
call fcn.004051d8
xor edx, edx
mov eax, dword [ebp - 0x44]
call fcn.0040ba78
mov edx, dword [ebp - 0x50]
mov dword [edx + 0x40], eax
lea edx, reloc.kernel32.dll_DeleteCriticalSection
mov eax, dword [ebp - 0x48]
call fcn.0040b510
mov edx, dword [ebp - reloc.kernel32.dll_DeleteCriticalSection]
mov eax, dword [ebp - 0x50]
add eax, 0x44
call fcn.00405194
mov eax, edi
dec eax
sub eax, 6
jae 0x55d0fd
mov eax, edi
mov edx, dword [ebp - 0x50]
mov byte [edx], al
cmp edi, 6
ja case.0x55d051.0
jmp dword [edi*4 + 0x55d058]
mov eax, dword [0x83a8f8]
mov eax, dword [eax]
mov edx, dword [ebp - 0x50]
call fcn.0042111c
jmp case.0x55d051.0
mov eax, dword [0x839b34]
mov eax, dword [eax]
mov edx, dword [ebp - 0x50]
call fcn.0042111c
jmp case.0x55d051.0
mov eax, dword [0x839c90]
mov eax, dword [eax]
mov edx, dword [ebp - 0x50]
call fcn.0042111c
jmp case.0x55d051.0
mov eax, dword [ebp - 0x50]
add eax, 0x38
mov edx, 0x55d37c
call fcn.00405194
mov eax, dword [0x839f88]
mov eax, dword [eax]
mov edx, dword [ebp - 0x50]
call fcn.0042111c
jmp case.0x55d051.0
mov eax, dword [ebp - 0x50]
add eax, 0x38
mov edx, 0x55d37c
call fcn.00405194
mov eax, dword [0x839a7c]
mov eax, dword [eax]
mov edx, dword [ebp - 0x50]
call fcn.0042111c
jmp case.0x55d051.0
mov eax, dword [0x83a170]
mov eax, dword [eax]
mov edx, dword [ebp - 0x50]
call fcn.0042111c
jmp case.0x55d051.0
mov edx, dword [0x492000]
mov eax, dword [ebp - 0x50]
call fcn.00406240
jmp case.0x55d051.0
mov eax, esi
neg eax
mov dword [ebp - 4], eax
inc esi
dec ebx
jne 0x55cbc6
cmp dword [ebp - 4], 0
jge 0x55d162
lea eax, reloc.kernel32.dll_DeleteCriticalSection
push eax
mov eax, dword [ebp - 8]
mov dword [ebp - reloc.kernel32.dll_DeleteCriticalSection], eax
mov byte [ebp - 0x1a4], 0xb
lea edx, reloc.kernel32.dll_DeleteCriticalSection
xor ecx, ecx
mov eax, 0x55d388
call fcn.0040ca34
mov edx, dword [ebp - reloc.kernel32.dll_DeleteCriticalSection]
mov eax, dword [0x839c58]
mov eax, dword [eax]
mov ecx, 0xff
call fcn.007d2f4c
mov eax, dword [0x839fb4]
cmp dword [eax], 0
je 0x55d2fc
mov eax, dword [0x83a8f8]
mov eax, dword [eax]
mov ebx, dword [eax + 8]
dec ebx
test ebx, ebx
jl 0x55d1b2
inc ebx
xor esi, esi
mov eax, dword [0x83a8f8]
mov eax, dword [eax]
mov edx, esi
call fcn.004212e4
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x50]
cmp dword [eax + 0x44], 0
je 0x55d1ae
mov eax, dword [ebp - 0x50]
mov edx, dword [eax + 0x44]
mov eax, dword [0x839fb4]
mov eax, dword [eax]
call fcn.00691df8
inc esi
dec ebx
jne 0x55d182
mov eax, dword [0x839b34]
mov eax, dword [eax]
mov ebx, dword [eax + 8]
dec ebx
test ebx, ebx
jl 0x55d1f4
inc ebx
xor esi, esi
mov eax, dword [0x839b34]
mov eax, dword [eax]
mov edx, esi
call fcn.004212e4
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x50]
cmp dword [eax + 0x44], 0
je 0x55d1f0
mov eax, dword [ebp - 0x50]
mov edx, dword [eax + 0x44]
mov eax, dword [0x839fb4]
mov eax, dword [eax]
call fcn.00691df8
inc esi
dec ebx
jne 0x55d1c4
mov eax, dword [0x839c90]
mov eax, dword [eax]
mov ebx, dword [eax + 8]
dec ebx
test ebx, ebx
jl 0x55d236
inc ebx
xor esi, esi
mov eax, dword [0x839c90]
mov eax, dword [eax]
mov edx, esi
call fcn.004212e4
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x50]
cmp dword [eax + 0x44], 0
je 0x55d232
mov eax, dword [ebp - 0x50]
mov edx, dword [eax + 0x44]
mov eax, dword [0x839fb4]
mov eax, dword [eax]
call fcn.00691df8
inc esi
dec ebx
jne 0x55d206
mov eax, dword [0x839f88]
mov eax, dword [eax]
mov ebx, dword [eax + 8]
dec ebx
test ebx, ebx
jl 0x55d278
inc ebx
xor esi, esi
mov eax, dword [0x839f88]
mov eax, dword [eax]
mov edx, esi
call fcn.004212e4
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x50]
cmp dword [eax + 0x44], 0
je 0x55d274
mov eax, dword [ebp - 0x50]
mov edx, dword [eax + 0x44]
mov eax, dword [0x839fb4]
mov eax, dword [eax]
call fcn.00691df8
inc esi
dec ebx
jne 0x55d248
mov eax, dword [0x839a7c]
mov eax, dword [eax]
mov ebx, dword [eax + 8]
dec ebx
test ebx, ebx
jl 0x55d2ba
inc ebx
xor esi, esi
mov eax, dword [0x839a7c]
mov eax, dword [eax]
mov edx, esi
call fcn.004212e4
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x50]
cmp dword [eax + 0x44], 0
je 0x55d2b6
mov eax, dword [ebp - 0x50]
mov edx, dword [eax + 0x44]
mov eax, dword [0x839fb4]
mov eax, dword [eax]
call fcn.00691df8
inc esi
dec ebx
jne 0x55d28a
mov eax, dword [0x83a170]
mov eax, dword [eax]
mov ebx, dword [eax + 8]
dec ebx
test ebx, ebx
jl 0x55d2fc
inc ebx
xor esi, esi
mov eax, dword [0x83a170]
mov eax, dword [eax]
mov edx, esi
call fcn.004212e4
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x50]
cmp dword [eax + 0x44], 0
je 0x55d2f8
mov eax, dword [ebp - 0x50]
mov edx, dword [eax + 0x44]
mov eax, dword [0x839fb4]
mov eax, dword [eax]
call fcn.00691df8
inc esi
dec ebx
jne 0x55d2cc
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x55d350
lea eax, reloc.kernel32.dll_DeleteCriticalSection
mov edx, 0xb
call fcn.00405164
lea eax, [ebp - 0x74]
mov edx, 7
call fcn.00405164
lea eax, [ebp - 0x54]
call fcn.00405140
lea eax, [ebp - 0x4c]
mov edx, 0xf
call fcn.00405164
lea eax, [ebp - 0xc]
mov edx, 2
call fcn.00405164
ret