Function at 0x515130
Capabilities:
Contain obfuscated stackstrings
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x51b054
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x78
push ebx
mov ebx, ecx
mov dword [ebp - 0x84], ebx
mov dword [ebp - 0x7c], 0
push esi
mov dword [ebx + 0x10], 0
mov esi, edx
mov dword [ebx + 0x14], 0
mov dword [ebx + 0x14], 0xf
cmp dword [ebx + 0x14], 0x10
mov dword [ebx + 0x10], 0
jb 0x515184
mov eax, dword [ebx]
jmp 0x515186
mov eax, ebx
mov byte [eax], 0
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x5c]
mov dword [ebp - 0x7c], 1
lea edx, [ecx + 1]
mov word [ebp - 0x43], 0x615a
mov dword [ebp - 0x1f], 0x2f2b39
mov dword [ebp - 0x2c], 0x7a797877
mov dword [ebp - 0x52], 0x4e4d4c4b
mov word [ebp - 0x39], 0x6b6a
mov word [ebp - 0x28], 0x3130
mov dword [ebp - 0x31], 0x75747372
mov word [ebp - 0x49], 0x5554
mov dword [ebp - 0x36], 0x706f6e6d
mov dword [ebp - 0x3d], 0x69686766
mov dword [ebp - 0x5b], 0x45444342
mov dword [ebp - 0x25], 0x36353433
mov word [ebp - 0x46], 0x5857
mov dword [ebp - 0x41], 0x65646362
mov word [ebp - 0x57], 0x4746
mov byte [ebp - 0x47], 0x56
mov word [ebp - 0x54], 0x4a49
mov word [ebp - 0x4e], 0x504f
mov word [ebp - 0x21], 0x3837
mov word [ebp - 0x4b], 0x5352
mov byte [ebp - 0x37], 0x6c
mov byte [ebp - 0x44], 0x59
mov byte [ebp - 0x4c], 0x51
mov byte [ebp - 0x26], 0x32
mov byte [ebp - 0x5c], 0x41
mov byte [ebp - 0x32], 0x71
mov byte [ebp - 0x2d], 0x76
mov byte [ebp - 0x55], 0x48
mov dword [ebp - 0x64], 0xf
mov dword [ebp - 0x68], 0
mov byte [ebp - 0x78], 0
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x515250
push edi
sub ecx, edx
lea eax, [ebp - 0x5c]
push ecx
push eax
lea ecx, [ebp - 0x78]
call fcn.00408e50
mov eax, dword [ebp + 8]
xor edi, edi
mov dword [ebp - 4], 1
test eax, eax
je 0x515510
nop dword [eax + eax]
dec eax
mov dword [ebp + 8], eax
mov al, byte [esi]
inc esi
mov byte [ebp + edi - 0x10], al
inc edi
mov ch, byte [ebp - 0xe]
mov dl, byte [ebp - 0xf]
mov cl, byte [ebp - 0x10]
mov dword [ebp - 0x60], edi
mov dword [ebp - 0x80], esi
mov byte [ebp - 0x18], ch
mov byte [ebp - 0x16], dl
mov byte [ebp - 0x17], cl
cmp edi, 3
jne 0x515382
mov al, cl
and cl, 3
shr al, 2
mov byte [ebp - 0x14], al
mov al, dl
shl cl, 4
shr al, 4
add cl, al
mov al, ch
mov byte [ebp - 0x13], cl
mov cl, dl
and cl, 0xf
shr al, 6
shl cl, 2
add cl, al
mov al, ch
and al, 0x3f
mov byte [ebp - 0x12], cl
mov byte [ebp - 0x11], al
xor edi, edi
cmp dword [ebp - 0x64], 0x10
lea eax, [ebp - 0x78]
movzx ecx, byte [ebp + edi - 0x14]
cmovae eax, dword [ebp - 0x78]
mov dl, byte [eax + ecx]
mov ecx, dword [ebx + 0x10]
mov eax, ecx
not eax
mov byte [ebp - 0x15], dl
cmp eax, 1
jbe 0x51544c
lea esi, [ecx + 1]
cmp esi, 0xfffffffe
ja 0x51544c
cmp dword [ebx + 0x14], esi
jae 0x515334
push ecx
push esi
mov ecx, ebx
call fcn.0040a6d0
mov dl, byte [ebp - 0x15]
test esi, esi
je 0x515367
cmp dword [ebx + 0x14], 0x10
mov ecx, dword [ebx + 0x10]
jb 0x51534f
mov eax, dword [ebx]
jmp 0x515351
test esi, esi
jne 0x515327
mov dword [ebx + 0x10], esi
cmp dword [ebx + 0x14], 0x10
jb 0x515348
mov eax, dword [ebx]
mov byte [eax], 0
jmp 0x515367
mov eax, ebx
mov byte [eax], 0
jmp 0x515367
mov eax, ebx
mov byte [ecx + eax], dl
cmp dword [ebx + 0x14], 0x10
mov dword [ebx + 0x10], esi
jb 0x515361
mov eax, dword [ebx]
jmp 0x515363
mov eax, ebx
mov byte [esi + eax], 0
inc edi
cmp edi, 4
jl 0x5152e0
mov dl, byte [ebp - 0x16]
xor edi, edi
mov cl, byte [ebp - 0x17]
mov esi, dword [ebp - 0x80]
mov ch, byte [ebp - 0x18]
mov dword [ebp - 0x60], edi
mov eax, dword [ebp + 8]
test eax, eax
jne 0x515280
test edi, edi
je 0x515510
cmp edi, 3
jge 0x5153c0
mov ecx, 3
lea edx, [ebp - 0x10]
sub ecx, edi
add edi, edx
mov edx, ecx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov ch, byte [ebp - 0xe]
mov dl, byte [ebp - 0xf]
mov cl, byte [ebp - 0x10]
mov edi, dword [ebp - 0x60]
mov al, cl
and cl, 3
shr al, 2
mov byte [ebp - 0x14], al
mov al, dl
shr al, 4
and dl, 0xf
shl cl, 4
add cl, al
shl dl, 2
mov al, ch
mov byte [ebp - 0x13], cl
shr al, 6
and ch, 0x3f
add dl, al
mov byte [ebp - 0x11], ch
mov byte [ebp - 0x12], dl
lea eax, [edi + 1]
xor edx, edx
mov dword [ebp - 0x10], edx
test eax, eax
jle 0x51549e
nop
cmp dword [ebp - 0x64], 0x10
lea eax, [ebp - 0x78]
movzx ecx, byte [ebp + edx - 0x14]
cmovae eax, dword [ebp - 0x78]
mov al, byte [ecx + eax]
mov ecx, dword [ebx + 0x10]
mov byte [ebp + 0xb], al
mov eax, ecx
not eax
cmp eax, 1
jbe 0x51544c
lea esi, [ecx + 1]
cmp esi, 0xfffffffe
ja 0x51544c
cmp dword [ebx + 0x14], esi
jae 0x515456
push ecx
push esi
mov ecx, ebx
call fcn.0040a6d0
mov edx, dword [ebp - 0x10]
test esi, esi
je 0x51548f
cmp dword [ebx + 0x14], 0x10
mov ecx, dword [ebx + 0x10]
jb 0x515471
mov eax, dword [ebx]
jmp 0x515473
push str.string_too_long
call fcn.00427e0e
test esi, esi
jne 0x51543f
mov dword [ebx + 0x10], esi
cmp dword [ebx + 0x14], 0x10
jb 0x51546a
mov eax, dword [ebx]
mov byte [eax], 0
jmp 0x51548f
mov eax, ebx
mov byte [eax], 0
jmp 0x51548f
mov eax, ebx
mov dl, byte [ebp + 0xb]
mov byte [ecx + eax], dl
cmp dword [ebx + 0x14], 0x10
mov dword [ebx + 0x10], esi
jb 0x515486
mov eax, dword [ebx]
jmp 0x515488
mov eax, ebx
mov edx, dword [ebp - 0x10]
mov byte [esi + eax], 0
inc edx
lea eax, [edi + 1]
mov dword [ebp - 0x10], edx
cmp edx, eax
jl 0x515400
cmp edi, 3
jge 0x515510
mov ecx, dword [ebx + 0x10]
inc edi
mov eax, ecx
not eax
cmp eax, 1
jbe 0x51544c
lea esi, [ecx + 1]
cmp esi, 0xfffffffe
ja 0x51544c
cmp dword [ebx + 0x14], esi
jae 0x5154d7
push ecx
push esi
mov ecx, ebx
call fcn.0040a6d0
test esi, esi
je 0x51550b
cmp dword [ebx + 0x14], 0x10
mov ecx, dword [ebx + 0x10]
jb 0x5154f2
mov eax, dword [ebx]
jmp 0x5154f4
test esi, esi
jne 0x5154ca
mov dword [ebx + 0x10], esi
cmp dword [ebx + 0x14], 0x10
jb 0x5154eb
mov eax, dword [ebx]
mov byte [eax], 0
jmp 0x51550b
mov eax, ebx
mov byte [eax], 0
jmp 0x51550b
mov eax, ebx
mov byte [ecx + eax], 0x3d
cmp dword [ebx + 0x14], 0x10
mov dword [ebx + 0x10], esi
jb 0x515505
mov eax, dword [ebx]
jmp 0x515507
mov eax, ebx
mov byte [eax + esi], 0
cmp edi, 3
jl 0x5154a3
mov eax, dword [ebp - 0x64]
pop edi
cmp eax, 0x10
jb 0x51555f
mov ecx, dword [ebp - 0x78]
inc eax
cmp eax, 0x1000
jb 0x515556
test cl, 0x1f
je 0x51552e
call fcn.0044d762
mov eax, dword [ebp - 0x78]
mov ecx, dword [eax - 4]
cmp ecx, eax
jb 0x51553d
call fcn.0044d762
mov eax, dword [ebp - 0x78]
sub eax, ecx
cmp eax, 4
jae 0x51554c
call fcn.0044d762
cmp eax, 0x23
jbe 0x515556
call fcn.0044d762
push ecx
call fcn.00426633
add esp, 4
mov ecx, dword [ebp - 0xc]
mov eax, ebx
pop esi
pop ebx
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret