Function at 0x542940
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x6a870b
mov eax, dword fs:[0]
push eax
sub esp, 0x4d8
mov eax, dword [0x73c280]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edx, ecx
mov dword [ebp - 0x4d0], edx
mov ecx, dword [ebp + 8]
mov esi, 4
mov dword [ebp - 0x4c8], ecx
mov dword [ebp - 0x4dc], 0
mov dword [ebp - 0x4e4], 0
mov eax, dword [ecx]
mov dword [ebp - 0x4cc], eax
test eax, eax
jle 0x542f86
mov edi, eax
nop dword [eax]
mov eax, dword [ecx + esi]
sub eax, 4
mov dword [ebp - 0x4d4], eax
mov eax, dword [ecx + esi + 4]
add esi, 8
cmp dword [edx + 0x1420], 0
mov dword [ebp - 0x4d8], eax
mov dword [ebp - 0x4e0], esi
je 0x5429e9
mov eax, dword [edx + 0x141c]
mov esi, dword [edx + 0x142c]
mov esi, dword [esi + eax*4]
jmp 0x5429eb
xor esi, esi
test esi, esi
je 0x542f65
cmp dword [esi + 0x1c], 0xf
lea ecx, [esi + 8]
mov eax, dword [ecx + 0x10]
xorps xmm0, xmm0
mov dword [ebp - 0x4bc], ecx
movups xmmword [ebp - 0x428], xmm0
mov dword [ebp - 0x418], 0
mov dword [ebp - 0x414], 0
mov dword [ebp - 0x4c4], eax
jbe 0x542a31
mov ecx, dword [ecx]
mov dword [ebp - 0x4bc], ecx
cmp eax, 0x7fffffff
ja 0x542fa3
cmp eax, 0xf
ja 0x542a6d
movups xmm0, xmmword [ecx]
mov edi, 0xf
mov dword [ebp - 0x418], eax
mov dword [ebp - 0x414], edi
movups xmmword [ebp - 0x428], xmm0
mov edx, dword [ebp - 0x428]
mov dword [ebp - 0x4c0], edx
jmp 0x542af4
mov edi, eax
or edi, 0xf
cmp edi, 0x7fffffff
jbe 0x542a8c
mov ecx, bind
mov edi, bind
push ecx
call fcn.0043e900
jmp 0x542ab4
cmp edi, 0x16
mov ecx, 0x16
cmovb edi, ecx
lea ecx, [edi + 1]
test ecx, ecx
je 0x542abf
cmp ecx, 0x1000
jb 0x542aae
push ecx
call fcn.0043e900
jmp 0x542ab4
push ecx
call fcn.005c8dfe
mov ecx, eax
add esp, 4
mov eax, dword [ebp - 0x4c4]
mov dword [ebp - 0x418], eax
inc eax
push eax
push dword [ebp - 0x4bc]
mov dword [ebp - 0x4c0], ecx
push ecx
mov dword [ebp - 0x428], ecx
mov dword [ebp - 0x414], edi
call fcn.00643a30
mov edx, dword [ebp - 0x4c0]
add esp, 0xc
mov eax, dword [ebp - 0x4c4]
mov dword [ebp - 4], 0
mov byte [ebp - 0x410], 0
test eax, eax
je 0x542be9
cmp edi, 0xf
lea eax, [ebp - 0x428]
lea ecx, [ebp - 0x410]
cmova eax, edx
mov dword [ebp - 0x4bc], eax
mov eax, ecx
mov edx, dword [ebp - 0x4bc]
sub edx, eax
nop dword [eax]
mov al, byte [ecx + edx]
lea ecx, [ecx + 1]
mov byte [ecx - 1], al
test al, al
jne 0x542b30
mov ecx, dword [ebp - 0x4c4]
mov edx, dword [ebp - 0x4c0]
add ecx, 0xffffffff
je 0x542be9
cmp edi, 0xf
lea eax, [ebp - 0x428]
cmova eax, edx
cmp byte [eax + ecx], 0x2f
je 0x542b81
cmp edi, 0xf
lea eax, [ebp - 0x428]
cmova eax, edx
cmp byte [eax + ecx], 0x5c
je 0x542b81
test ecx, ecx
je 0x542be9
sub ecx, 1
jne 0x542b52
jmp 0x542be9
inc ecx
xor eax, eax
mov dword [ebp - 0x4bc], ecx
mov ecx, dword [ebp - 0x4c4]
cmp dword [ebp - 0x4bc], ecx
jae 0x542bd6
sub ecx, dword [ebp - 0x4bc]
push ecx
cmp edi, 0xf
jbe 0x542bae
mov eax, dword [ebp - 0x4bc]
add eax, edx
jmp 0x542bba
lea eax, [ebp - 0x428]
add eax, dword [ebp - 0x4bc]
push eax
lea eax, [ebp - 0x410]
mov dword [ebp - 0x4bc], ecx
push eax
call fcn.00643a30
mov eax, dword [ebp - 0x4bc]
add esp, 0xc
cmp eax, 0x400
jae 0x542fa8
mov byte [ebp + eax - 0x410], 0
lea eax, [ebp - 0x410]
push eax
lea ecx, [ebp - 0x440]
call fcn.0043ef30
or dword [ebp - 0x4dc], 1
mov byte [ebp - 4], 2
cmp edi, 0xf
jbe 0x542c3a
mov ecx, dword [ebp - 0x4c0]
inc edi
mov eax, ecx
cmp edi, 0x1000
jb 0x542c30
mov ecx, dword [eax - 4]
add edi, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x542fad
push edi
push ecx
call fcn.005c8a85
add esp, 8
cmp dword [ebp - 0x42c], 0xf
lea ecx, [ebp - 0x440]
mov eax, dword [ebp - 0x440]
mov edi, dword [ebp - 0x430]
cmova ecx, eax
add edi, ecx
mov dword [ebp - 0x4bc], eax
xor edx, edx
cmp ecx, edi
jae 0x542c74
movzx eax, byte [ecx]
inc ecx
imul edx, edx, 0x1000193
xor edx, eax
cmp ecx, edi
jb 0x542c64
cmp dword [ebp - 0x4d8], edx
je 0x542cce
mov eax, dword [ebp - 0x42c]
mov dword [ebp - 4], 0xffffffff
cmp eax, 0xf
jbe 0x542cbf
mov edx, dword [ebp - 0x4bc]
lea ecx, [eax + 1]
mov eax, edx
cmp ecx, 0x1000
jb 0x542cb5
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x542fad
push ecx
push edx
call fcn.005c8a85
add esp, 8
mov esi, dword [esi]
test esi, esi
jne 0x5429f3
jmp 0x542f53
mov ecx, dword [esi + 0x20]
call fcn.00547f60
mov ecx, dword [ebp - 0x4e0]
add ecx, dword [ebp - 0x4c8]
push ecx
mov ecx, eax
call fcn.0054d340
mov dword [ebp - 0x4d8], eax
cmp dword [ebp - 0x4d4], eax
je 0x542f16
movaps xmm0, xmmword [0x6cf4e0]
lea eax, [ebp - 0x440]
movups xmmword [ebp - 0x1e4], xmm0
cmp dword [ebp - 0x42c], 0xf
movaps xmm0, xmmword [0x6c9440]
movups xmmword [ebp - 0x1d4], xmm0
cmova eax, dword [ebp - 0x440]
movaps xmm0, xmmword [0x6cf490]
movups xmmword [ebp - 0x1c4], xmm0
push 0x75
movaps xmm0, xmmword [0x6cdfc0]
movups xmmword [ebp - 0x1b4], xmm0
mov dword [ebp - 0x4bc], eax
lea eax, [ebp - 0x4b8]
movaps xmm0, xmmword [0x6bf410]
movups xmmword [ebp - 0x1a4], xmm0
push 0
movaps xmm0, xmmword [0x6cf500]
movups xmmword [ebp - 0x194], xmm0
push eax
movaps xmm0, xmmword [0x6cf390]
movups xmmword [ebp - 0x184], xmm0
mov dword [ebp - 0x14], 0
movaps xmm0, xmmword [0x6cf3f0]
movups xmmword [ebp - 0x174], xmm0
movaps xmm0, xmmword [0x6cf430]
movups xmmword [ebp - 0x164], xmm0
movaps xmm0, xmmword [0x6c9430]
movups xmmword [ebp - 0x154], xmm0
movaps xmm0, xmmword [0x6cf3a0]
movups xmmword [ebp - 0x144], xmm0
movaps xmm0, xmmword [0x6cf3e0]
movups xmmword [ebp - 0x134], xmm0
movaps xmm0, xmmword [0x6cf450]
movups xmmword [ebp - 0x124], xmm0
movaps xmm0, xmmword [0x6cf3b0]
movups xmmword [ebp - 0x114], xmm0
movaps xmm0, xmmword [0x6cf410]
movups xmmword [ebp - 0x104], xmm0
movaps xmm0, xmmword [0x6cf440]
movups xmmword [ebp - 0xf4], xmm0
movaps xmm0, xmmword [0x6cf4a0]
movups xmmword [ebp - 0xe4], xmm0
movaps xmm0, xmmword [0x6cf510]
movups xmmword [ebp - 0xd4], xmm0
movaps xmm0, xmmword [0x6cf4b0]
movups xmmword [ebp - 0xc4], xmm0
movaps xmm0, xmmword [0x6c49f0]
movups xmmword [ebp - 0xb4], xmm0
movaps xmm0, xmmword [0x6cf420]
movups xmmword [ebp - 0xa4], xmm0
movaps xmm0, xmmword [0x6cf4f0]
movups xmmword [ebp - 0x94], xmm0
movaps xmm0, xmmword [0x6cf3d0]
movups xmmword [ebp - 0x84], xmm0
movaps xmm0, xmmword [0x6cf4c0]
movups xmmword [ebp - 0x74], xmm0
movaps xmm0, xmmword [0x6cf520]
movups xmmword [ebp - 0x64], xmm0
movaps xmm0, xmmword [0x6bad90]
movups xmmword [ebp - 0x54], xmm0
movaps xmm0, xmmword [0x6cf470]
movups xmmword [ebp - 0x44], xmm0
movaps xmm0, xmmword [0x6cf400]
movups xmmword [ebp - 0x34], xmm0
movaps xmm0, xmmword [0x6bd9d0]
movups xmmword [ebp - 0x24], xmm0
call fcn.006430f0
add esp, 0xc
xor edi, edi
mov ecx, 1
mov esi, 0x19b
imul ecx, dword [ebp + edi*4 - 0x1e4]
mov eax, 0x3b7d8157
imul ecx
sub edx, ecx
sar edx, 9
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, eax, 0x29b
add ecx, eax
sub esi, 1
jne 0x542ec0
mov byte [ebp + edi - 0x4b8], cl
inc edi
cmp edi, 0x75
jl 0x542eb6
push dword [ebp - 0x4d8]
lea eax, [ebp - 0x4b8]
push dword [ebp - 0x4d4]
push dword [ebp - 0x4bc]
push eax
call fcn.00505750
add esp, 0x10
mov ecx, dword [ebp - 0x42c]
mov dword [ebp - 4], 0xffffffff
cmp ecx, 0xf
jbe 0x542f53
mov edx, dword [ebp - 0x440]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x542f49
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x542fad
push ecx
push edx
call fcn.005c8a85
add esp, 8
mov ecx, dword [ebp - 0x4c8]
mov edx, dword [ebp - 0x4d0]
mov edi, dword [ebp - 0x4cc]
mov eax, dword [ebp - 0x4e4]
mov esi, dword [ebp - 0x4e0]
inc eax
add esi, dword [ebp - 0x4d4]
mov dword [ebp - 0x4e4], eax
cmp eax, edi
jl 0x5429b0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.005c8a4d
mov esp, ebp
pop ebp
ret 4
call fcn.00444010
call fcn.005c9429
call fcn.0064e36a
int3