Function at 0x4550c0
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x40
mov edi, ecx
mov eax, dword [0x597010]
xor eax, ebp
mov dword [esp + 0x38], eax
cmp dword [ecx + 0x28], 0
mov esi, dword [ebp + 8]
jne 0x4550ef
push esi
call fcn.00489990
add esp, 4
test al, al
je 0x455138
cmp byte [esi + 0xb], 0
mov dword [esp + 0xc], esi
mov dword [esp + 0x14], edi
js 0x455113
mov eax, dword [esi + 8]
mov dword [esp + 0x28], eax
movsd xmm0, qword [esi]
movsd qword [esp + 0x20], xmm0
jmp 0x455260
mov eax, esi
mov esi, dword [esi]
mov ebx, dword [eax + 4]
cmp ebx, 0xa
ja 0x45520f
mov byte [esp + 0x2b], bl
lea eax, [esp + 0x20]
cmp eax, esi
jbe 0x455244
jmp 0x455250
mov ebx, dword [edi + 0x38]
test ebx, ebx
jne 0x4551f2
mov ebx, edi
mov dword [esp + 0xc], esi
mov dword [esp + 0x20], 0xffffffff
mov dword [esp + 0x24], 0xffffffff
mov dword [esp + 0x28], 0x9ffffff
lea edx, [esp + 0x20]
cmp edx, str.discarded
ja 0x45517c
lea eax, [esp + 0x29]
cmp eax, str.discarded
ja 0x455451
mov dword [esp + 0x24], 0x65647261
mov dword [esp + 0x20], 0x63736964
mov word [esp + 0x28], 0x64
lea edi, [esp + 0x30]
mov ecx, ebx
push edx
push edi
call fcn.00455460
push 0x48
call fcn.005283f4
add esp, 4
mov esi, eax
mov ecx, eax
push edi
mov edi, ebx
push dword [ebx + 0x28]
lea eax, [esp + 0x28]
push eax
call fcn.00455ab0
mov ebx, dword [ebx + 0x38]
mov dword [edi + 0x38], esi
test ebx, ebx
je 0x4551d8
mov ecx, ebx
call fcn.00455b80
push ebx
call fcn.00528424
add esp, 4
cmp byte [esp + 0x2b], 0
mov esi, dword [esp + 0xc]
jns 0x4551ef
push dword [esp + 0x20]
call fcn.00528424
add esp, 4
mov ebx, dword [edi + 0x38]
test esi, esi
je 0x45542f
mov ecx, esi
call fcn.00455b80
push esi
call fcn.00528424
add esp, 4
jmp 0x45542f
cmp ebx, 0x7ffffff0
jae 0x455446
mov edi, ebx
or edi, 0xf
inc edi
push edi
call fcn.005283f4
add esp, 4
mov dword [esp + 0x20], eax
or edi, 0x80000000
mov dword [esp + 0x28], edi
mov dword [esp + 0x24], ebx
mov edi, dword [esp + 0x14]
cmp eax, esi
ja 0x455250
lea ecx, [eax + ebx]
inc ecx
cmp ecx, esi
ja 0x45544e
inc ebx
push ebx
push esi
push eax
call fcn.0052bc90
add esp, 0xc
mov esi, dword [esp + 0xc]
mov dword [esp + 0x2c], esi
mov eax, edi
mov edi, dword [edi + 0x14]
test edi, edi
je 0x455281
movzx ecx, byte [edi + 0x1b]
test cl, cl
jns 0x45528b
mov ecx, dword [edi + 0x14]
mov esi, dword [edi + 0x10]
test ecx, ecx
jne 0x455292
jmp 0x45529a
lea esi, [eax + 0x14]
mov ebx, esi
jmp 0x455397
lea esi, [edi + 0x10]
test ecx, ecx
je 0x45529a
test esi, esi
je 0x455387
movzx edx, byte [esp + 0x2b]
test dl, dl
cmovs edx, dword [esp + 0x24]
lea eax, [esp + 0x20]
cmovs eax, dword [esp + 0x20]
test edx, edx
mov dword [esp + 0x18], eax
je 0x4552c0
test eax, eax
je 0x45544b
nop
mov dword [esp + 0x10], edi
cmp edx, ecx
mov ebx, ecx
cmovb ebx, edx
test ebx, ebx
je 0x455300
mov edi, edx
mov eax, esi
mov esi, ecx
push ebx
mov dword [esp + 0x20], eax
push eax
push dword [esp + 0x20]
call fcn.0052a60d
add esp, 0xc
test eax, eax
je 0x455310
mov edx, edi
jns 0x455330
jmp 0x455318
cmp edx, ecx
jb 0x455318
jmp 0x455350
mov eax, esi
mov edx, edi
cmp edi, esi
jae 0x455330
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx]
mov esi, ebx
test eax, eax
jne 0x45535f
jmp 0x455397
push ebx
push dword [esp + 0x1c]
push dword [esp + 0x24]
call fcn.0052a60d
mov edx, edi
mov ecx, esi
add esp, 0xc
test eax, eax
je 0x455350
js 0x455354
jmp 0x45538a
cmp ecx, edx
jae 0x45538a
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 4]
test eax, eax
je 0x455394
movzx ecx, byte [eax + 0x1b]
test cl, cl
jns 0x455370
mov ecx, dword [eax + 0x14]
mov esi, dword [eax + 0x10]
jmp 0x455373
lea esi, [eax + 0x10]
mov edi, eax
test ecx, ecx
je 0x4552c0
mov edi, eax
test esi, esi
jne 0x4552c0
int3
mov esi, dword [esp + 0xc]
mov edi, dword [esp + 0x10]
jmp 0x4553fd
lea esi, [ebx + 4]
push 0x20
call fcn.005283f4
add esp, 4
mov edi, eax
mov eax, dword [esp + 0x28]
mov dword [edi + 0x18], eax
movsd xmm0, qword [esp + 0x20]
movsd qword [edi + 0x10], xmm0
xorps xmm0, xmm0
movaps xmmword [esp + 0x20], xmm0
mov eax, dword [esp + 0xc]
mov dword [edi + 0x1c], eax
mov dword [edi], 0
mov dword [edi + 4], 0
mov dword [edi + 8], ebx
mov dword [esi], edi
mov ebx, dword [esp + 0x14]
mov eax, dword [ebx + 0x10]
mov ecx, dword [eax]
mov eax, edi
test ecx, ecx
je 0x4553ea
mov dword [ebx + 0x10], ecx
mov eax, dword [esi]
push eax
push dword [ebx + 0x14]
call fcn.0043152a
add esp, 8
inc dword [ebx + 0x18]
mov esi, dword [esp + 0x2c]
mov dword [esp + 0x2c], 0
test esi, esi
je 0x455419
mov ecx, esi
call fcn.00455b80
push esi
call fcn.00528424
add esp, 4
cmp byte [esp + 0x2b], 0
jns 0x45542c
push dword [esp + 0x20]
call fcn.00528424
add esp, 4
mov ebx, dword [edi + 0x1c]
mov ecx, dword [esp + 0x38]
xor ecx, ebp
call fcn.00528e13
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 4
call fcn.0053bf0b
int3
int3
int3