Function at 0x4d7b30
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
mov eax, 0x284
call fcn.00525ec0
mov eax, dword [0x5af1b4]
xor eax, esp
mov dword [esp + 0x27c], eax
test dword [0x5be9b0], 0x800000
mov eax, dword [esp + 0x288]
push ebx
push ebp
push esi
push edi
mov dword [esp + 0x1c0], ecx
jne 0x4d8e67
mov edi, ecx
lea edx, [esp + 0x208]
sub edi, edx
lea edx, [esp + 0x248]
sub edx, ecx
mov dword [esp + 0x1ac], edx
lea edx, [esp + 0x249]
sub edx, ecx
mov dword [esp + 0x1c4], edx
lea edx, [esp + 0x24a]
sub edx, ecx
mov dword [esp + 0x1bc], edx
lea edx, [esp + 0x24b]
sub edx, ecx
mov dword [esp + 0x198], edx
mov ecx, eax
lea edx, [esp + 0x248]
sub ecx, edx
mov dword [esp + 0x34], ecx
lea ecx, [eax + 2]
lea edx, [esp + 0x208]
sub eax, edx
mov esi, eax
mov dword [esp + 0x19c], edi
mov dword [esp + 0x44], ecx
mov dword [esp + 0x24], esi
jmp 0x4d7bf7
mov edi, dword [esp + 0x19c]
xor eax, eax
lea esp, [esp]
lea ecx, [esp + eax + 0x208]
mov dl, byte [edi + ecx]
mov byte [ecx], dl
mov cl, byte [esi + ecx]
xor cl, dl
mov byte [esp + eax + 0x248], cl
inc eax
cmp eax, 0x40
jl 0x4d7c00
mov eax, 0x5589a8
mov dword [esp + 0xe4], eax
lea ebx, [ebx]
movzx edi, byte [esp + 0x233]
mov ebx, dword [edi*8 + 0x5581a8]
mov edi, dword [edi*8 + 0x5581ac]
mov dword [esp + 0x14c], edi
movzx edi, byte [esp + 0x22c]
mov dword [esp + 0x148], ebx
mov ebx, dword [edi*8 + 0x5581a8]
mov edi, dword [edi*8 + 0x5581ac]
mov dword [esp + 0x54], edi
movzx edi, byte [esp + 0x225]
mov dword [esp + 0x50], ebx
mov ebx, dword [edi*8 + 0x5581a8]
mov edi, dword [edi*8 + 0x5581ac]
mov dword [esp + 0xf4], edi
movzx edi, byte [esp + 0x21e]
mov dword [esp + 0xf0], ebx
mov ebx, dword [edi*8 + 0x5581a8]
mov edi, dword [edi*8 + 0x5581ac]
mov dword [esp + 0x164], edi
movzx edi, byte [esp + 0x217]
mov ebp, dword [edi*8 + 0x5581a8]
mov edi, dword [edi*8 + 0x5581ac]
mov dword [esp + 0x1a0], ebp
mov edx, dword [eax]
mov dword [esp + 0x1a4], edi
shld edi, ebp, 8
xor edi, dword [esp + 0x164]
shl ebp, 8
xor ebp, ebx
shld edi, ebp, 8
xor edi, dword [esp + 0xf4]
mov eax, dword [eax + 4]
shl ebp, 8
xor ebp, dword [esp + 0xf0]
mov dword [esp + 0x160], ebx
shld edi, ebp, 8
xor edi, dword [esp + 0x54]
shl ebp, 8
xor ebp, dword [esp + 0x50]
mov dword [esp + 0x1cc], eax
movzx eax, byte [esp + 0x241]
mov ecx, dword [eax*8 + 0x5581a8]
mov eax, dword [eax*8 + 0x5581ac]
shld edi, ebp, 8
shl ebp, 8
xor ebp, dword [esp + 0x148]
mov ebx, edi
mov edi, dword [esp + 0x14c]
xor ebx, edi
shld ebx, ebp, 8
mov dword [esp + 0x1c8], edx
movzx edx, byte [esp + 0x23a]
mov esi, dword [edx*8 + 0x5581a8]
mov edx, dword [edx*8 + 0x5581ac]
shl ebp, 8
xor ebp, esi
xor ebx, edx
shld ebx, ebp, 8
xor ebx, eax
shl ebp, 8
xor ebp, ecx
shrd ecx, eax, 8
shr eax, 8
xor eax, edx
xor ecx, esi
shrd ecx, eax, 8
xor ecx, dword [esp + 0x148]
shr eax, 8
xor eax, edi
shrd ecx, eax, 8
xor ecx, dword [esp + 0x50]
shr eax, 8
xor eax, dword [esp + 0x54]
shld ebx, ebp, 8
shrd ecx, eax, 8
xor ecx, dword [esp + 0xf0]
shr eax, 8
xor eax, dword [esp + 0xf4]
shl ebp, 8
shrd ecx, eax, 8
shr eax, 8
xor eax, dword [esp + 0x164]
xor ecx, dword [esp + 0x160]
shrd ecx, eax, 8
xor ecx, dword [esp + 0x1a0]
shr eax, 8
xor eax, dword [esp + 0x1a4]
shrd ecx, eax, 8
xor ebp, ecx
shr eax, 8
xor ebx, eax
movzx eax, byte [esp + 0x208]
xor ebp, dword [eax*8 + 0x5581a8]
xor ebx, dword [eax*8 + 0x5581ac]
xor dword [esp + 0x1c8], ebp
xor dword [esp + 0x1cc], ebx
movzx eax, byte [esp + 0x209]
mov edx, dword [eax*8 + 0x5581a8]
mov esi, dword [eax*8 + 0x5581ac]
movzx eax, byte [esp + 0x242]
mov ecx, dword [eax*8 + 0x5581ac]
mov edi, dword [eax*8 + 0x5581a8]
movzx eax, byte [esp + 0x23b]
mov dword [esp + 0x184], ecx
mov ecx, dword [eax*8 + 0x5581a8]
mov eax, dword [eax*8 + 0x5581ac]
mov ebx, edx
mov ebp, esi
shrd ebx, ebp, 8
shr ebp, 8
xor ebp, dword [esp + 0x184]
xor ebx, edi
shrd ebx, ebp, 8
shr ebp, 8
mov dword [esp + 0x104], eax
xor ebp, dword [esp + 0x104]
movzx eax, byte [esp + 0x234]
mov dword [esp + 0x100], ecx
xor ebx, dword [esp + 0x100]
mov ecx, dword [eax*8 + 0x5581a8]
mov eax, dword [eax*8 + 0x5581ac]
shrd ebx, ebp, 8
shr ebp, 8
mov dword [esp + 0x74], eax
xor ebp, dword [esp + 0x74]
movzx eax, byte [esp + 0x22d]
mov dword [esp + 0x70], ecx
xor ebx, dword [esp + 0x70]
mov ecx, dword [eax*8 + 0x5581a8]
mov eax, dword [eax*8 + 0x5581ac]
shrd ebx, ebp, 8
shr ebp, 8
mov dword [esp + 0x124], eax
xor ebp, dword [esp + 0x124]
movzx eax, byte [esp + 0x226]
mov dword [esp + 0x120], ecx
xor ebx, dword [esp + 0x120]
mov ecx, dword [eax*8 + 0x5581a8]
mov eax, dword [eax*8 + 0x5581ac]
shrd ebx, ebp, 8
mov dword [esp + 0x64], eax
mov dword [esp + 0x60], ecx
xor ebx, dword [esp + 0x60]
movzx ecx, byte [esp + 0x21f]
mov eax, dword [ecx*8 + 0x5581a8]
mov ecx, dword [ecx*8 + 0x5581ac]
shr ebp, 8
xor ebp, dword [esp + 0x64]
mov dword [esp + 0x180], edi
shrd ebx, ebp, 8
shr ebp, 8
xor ebp, ecx
shld ecx, eax, 8
xor ecx, dword [esp + 0x64]
xor ebx, eax
shl eax, 8
xor eax, dword [esp + 0x60]
shrd ebx, ebp, 8
shld ecx, eax, 8
shl eax, 8
shr ebp, 8
xor eax, dword [esp + 0x120]
xor ecx, dword [esp + 0x124]
shld ecx, eax, 8
xor ecx, dword [esp + 0x74]
shl eax, 8
xor eax, dword [esp + 0x70]
shld ecx, eax, 8
xor ecx, dword [esp + 0x104]
shl eax, 8
xor eax, dword [esp + 0x100]
shld ecx, eax, 8
xor ecx, dword [esp + 0x184]
shl eax, 8
xor eax, edi
shld ecx, eax, 8
shl eax, 8
xor eax, edx
xor ecx, esi
shld ecx, eax, 8
xor ebp, ecx
shl eax, 8
xor ebx, eax
movzx eax, byte [esp + 0x210]
xor ebp, dword [eax*8 + 0x5581ac]
xor ebx, dword [eax*8 + 0x5581a8]
movzx eax, byte [esp + 0x211]
mov edx, dword [eax*8 + 0x5581a8]
mov esi, dword [eax*8 + 0x5581ac]
movzx eax, byte [esp + 0x20a]
mov ecx, dword [eax*8 + 0x5581ac]
mov edi, dword [eax*8 + 0x5581a8]
movzx eax, byte [esp + 0x243]
mov dword [esp + 0x1d4], ebp
mov dword [esp + 0x1d0], ebx
mov ebx, edx
mov ebp, esi
shrd ebx, ebp, 8
shr ebp, 8
mov dword [esp + 0x154], ecx
xor ebp, dword [esp + 0x154]
mov ecx, dword [eax*8 + 0x5581a8]
mov eax, dword [eax*8 + 0x5581ac]
xor ebx, edi
shrd ebx, ebp, 8
shr ebp, 8
mov dword [esp + 0x114], eax
xor ebp, dword [esp + 0x114]
movzx eax, byte [esp + 0x23c]
mov dword [esp + 0x110], ecx
xor ebx, dword [esp + 0x110]
mov ecx, dword [eax*8 + 0x5581a8]
mov eax, dword [eax*8 + 0x5581ac]
shrd ebx, ebp, 8
shr ebp, 8
mov dword [esp + 0x94], eax
xor ebp, dword [esp + 0x94]
movzx eax, byte [esp + 0x235]
mov dword [esp + 0x90], ecx
xor ebx, dword [esp + 0x90]
mov ecx, dword [eax*8 + 0x5581a8]
mov eax, dword [eax*8 + 0x5581ac]
shrd ebx, ebp, 8
shr ebp, 8
mov dword [esp + 0x130], ecx
xor ebx, dword [esp + 0x130]
mov dword [esp + 0x134], eax
xor ebp, dword [esp + 0x134]
movzx eax, byte [esp + 0x22e]
mov ecx, dword [eax*8 + 0x5581a8]
mov eax, dword [eax*8 + 0x5581ac]
shrd ebx, ebp, 8
mov dword [esp + 0x80], ecx
xor ebx, dword [esp + 0x80]
movzx ecx, byte [esp + 0x227]
shr ebp, 8
mov dword [esp + 0x84], eax
xor ebp, dword [esp + 0x84]
mov eax, dword [ecx*8 + 0x5581a8]
mov ecx, dword [ecx*8 + 0x5581ac]
shrd ebx, ebp, 8
mov dword [esp + 0x150], edi
shr ebp, 8
xor ebx, eax
xor ebp, ecx
shld ecx, eax, 8
xor ecx, dword [esp + 0x84]
shl eax, 8
xor eax, dword [esp + 0x80]
shrd ebx, ebp, 8
shld ecx, eax, 8
xor ecx, dword [esp + 0x134]
shl eax, 8
xor eax, dword [esp + 0x130]
shr ebp, 8
shld ecx, eax, 8
xor ecx, dword [esp + 0x94]
shl eax, 8
xor eax, dword [esp + 0x90]
shld ecx, eax, 8
xor ecx, dword [esp + 0x114]
shl eax, 8
xor eax, dword [esp + 0x110]
shld ecx, eax, 8
xor ecx, dword [esp + 0x154]
shl eax, 8
xor eax, edi
shld ecx, eax, 8
shl eax, 8
xor eax, edx
xor ecx, esi
shld ecx, eax, 8
shl eax, 8
xor ebx, eax
movzx eax, byte [esp + 0x218]
xor ebx, dword [eax*8 + 0x5581a8]
xor ebp, ecx
xor ebp, dword [eax*8 + 0x5581ac]
movzx eax, byte [esp + 0x219]
mov edx, dword [eax*8 + 0x5581a8]
mov esi, dword [eax*8 + 0x5581ac]
movzx eax, byte [esp + 0x212]
mov edi, dword [eax*8 + 0x5581a8]
mov ecx, dword [eax*8 + 0x5581ac]
movzx eax, byte [esp + 0x20b]
mov dword [esp + 0x15c], ecx
mov ecx, dword [eax*8 + 0x5581a8]
mov eax, dword [eax*8 + 0x5581ac]
mov dword [esp + 0x1dc], ebp
mov dword [esp + 0x13c], eax
movzx eax, byte [esp + 0x244]
mov dword [esp + 0x1d8], ebx
mov dword [esp + 0x138], ecx
mov ecx, dword [eax*8 + 0x5581a8]
mov eax, dword [eax*8 + 0x5581ac]
mov ebx, edx
mov ebp, esi
shrd ebx, ebp, 8
shr ebp, 8
xor ebp, dword [esp + 0x15c]
mov dword [esp + 0xb4], eax
movzx eax, byte [esp + 0x23d]
mov dword [esp + 0xb0], ecx
mov ecx, dword [eax*8 + 0x5581a8]
mov eax, dword [eax*8 + 0x5581ac]
xor ebx, edi
shrd ebx, ebp, 8
xor ebx, dword [esp + 0x138]
mov dword [esp + 0x144], eax
movzx eax, byte [esp + 0x236]
shr ebp, 8
xor ebp, dword [esp + 0x13c]
mov dword [esp + 0x140], ecx
mov ecx, dword [eax*8 + 0x5581a8]
mov eax, dword [eax*8 + 0x5581ac]
mov dword [esp + 0xa0], ecx
movzx ecx, byte [esp + 0x22f]
shrd ebx, ebp, 8
mov dword [esp + 0xa4], eax
mov eax, dword [ecx*8 + 0x5581a8]
mov ecx, dword [ecx*8 + 0x5581ac]
shr ebp, 8
xor ebx, dword [esp + 0xb0]
mov dword [esp + 0x158], edi
xor ebp, dword [esp + 0xb4]
shrd ebx, ebp, 8
xor ebx, dword [esp + 0x140]
shr ebp, 8
xor ebp, dword [esp + 0x144]
shrd ebx, ebp, 8
xor ebx, dword [esp + 0xa0]
shr ebp, 8
xor ebp, dword [esp + 0xa4]
shrd ebx, ebp, 8
xor ebx, eax
shr ebp, 8
xor ebp, ecx
shld ecx, eax, 8
xor ecx, dword [esp + 0xa4]
shl eax, 8
xor eax, dword [esp + 0xa0]
shrd ebx, ebp, 8
shld ecx, eax, 8
xor ecx, dword [esp + 0x144]
shl eax, 8
xor eax, dword [esp + 0x140]
shr ebp, 8
shld ecx, eax, 8
xor ecx, dword [esp + 0xb4]
shl eax, 8
xor eax, dword [esp + 0xb0]
shld ecx, eax, 8
xor ecx, dword [esp + 0x13c]
shl eax, 8
xor eax, dword [esp + 0x138]
shld ecx, eax, 8
xor ecx, dword [esp + 0x15c]
shl eax, 8
xor eax, edi
shld ecx, eax, 8
shl eax, 8
xor eax, edx
xor ecx, esi
shld ecx, eax, 8
shl eax, 8
xor ebx, eax
movzx eax, byte [esp + 0x220]
xor ebx, dword [eax*8 + 0x5581a8]
xor ebp, ecx
xor ebp, dword [eax*8 + 0x5581ac]
movzx eax, byte [esp + 0x221]
mov edx, dword [eax*8 + 0x5581a8]
mov esi, dword [eax*8 + 0x5581ac]
movzx eax, byte [esp + 0x21a]
mov ecx, dword [eax*8 + 0x5581ac]
mov edi, dword [eax*8 + 0x5581a8]
movzx eax, byte [esp + 0x213]
mov dword [esp + 0x16c], ecx
mov ecx, dword [eax*8 + 0x5581a8]
mov eax, dword [eax*8 + 0x5581ac]
mov dword [esp + 0x11c], eax
movzx eax, byte [esp + 0x20c]
mov dword [esp + 0x118], ecx
mov ecx, dword [eax*8 + 0x5581a8]
mov eax, dword [eax*8 + 0x5581ac]
mov dword [esp + 0xd4], eax
movzx eax, byte [esp + 0x245]
mov dword [esp + 0xd0], ecx
mov ecx, dword [eax*8 + 0x5581a8]
mov eax, dword [eax*8 + 0x5581ac]
mov dword [esp + 0x12c], eax
movzx eax, byte [esp + 0x23e]
mov dword [esp + 0x128], ecx
mov ecx, dword [eax*8 + 0x5581a8]
mov eax, dword [eax*8 + 0x5581ac]
mov dword [esp + 0xc0], ecx
movzx ecx, byte [esp + 0x237]
mov dword [esp + 0xc4], eax
mov eax, dword [ecx*8 + 0x5581a8]
mov ecx, dword [ecx*8 + 0x5581ac]
mov dword [esp + 0x1e0], ebx
mov dword [esp + 0x1e4], ebp
mov dword [esp + 0x168], edi
mov ebx, edx
mov ebp, esi
shrd ebx, ebp, 8
shr ebp, 8
xor ebp, dword [esp + 0x16c]
xor ebx, edi
shrd ebx, ebp, 8
xor ebx, dword [esp + 0x118]
shr ebp, 8
xor ebp, dword [esp + 0x11c]
shrd ebx, ebp, 8
xor ebx, dword [esp + 0xd0]
shr ebp, 8
xor ebp, dword [esp + 0xd4]
shrd ebx, ebp, 8
xor ebx, dword [esp + 0x128]
shr ebp, 8
xor ebp, dword [esp + 0x12c]
shrd ebx, ebp, 8
xor ebx, dword [esp + 0xc0]
shr ebp, 8
xor ebp, dword [esp + 0xc4]
shrd ebx, ebp, 8
xor ebx, eax
shr ebp, 8
xor ebp, ecx
shld ecx, eax, 8
xor ecx, dword [esp + 0xc4]
shl eax, 8
xor eax, dword [esp + 0xc0]
shrd ebx, ebp, 8
shld ecx, eax, 8
xor ecx, dword [esp + 0x12c]
shl eax, 8
xor eax, dword [esp + 0x128]
shr ebp, 8
shld ecx, eax, 8
xor ecx, dword [esp + 0xd4]
shl eax, 8
xor eax, dword [esp + 0xd0]
shld ecx, eax, 8
xor ecx, dword [esp + 0x11c]
shl eax, 8
xor eax, dword [esp + 0x118]
shld ecx, eax, 8
xor ecx, dword [esp + 0x16c]
shl eax, 8
xor eax, edi
shld ecx, eax, 8
shl eax, 8
xor eax, edx
xor ecx, esi
shld ecx, eax, 8
shl eax, 8
xor ebx, eax
movzx eax, byte [esp + 0x228]
xor ebx, dword [eax*8 + 0x5581a8]
xor ebp, ecx
xor ebp, dword [eax*8 + 0x5581ac]
movzx eax, byte [esp + 0x229]
mov edx, dword [eax*8 + 0x5581a8]
mov esi, dword [eax*8 + 0x5581ac]
movzx eax, byte [esp + 0x222]
mov ecx, dword [eax*8 + 0x5581ac]
mov edi, dword [eax*8 + 0x5581a8]
movzx eax, byte [esp + 0x21b]
mov dword [esp + 0x17c], ecx
mov ecx, dword [eax*8 + 0x5581a8]
mov eax, dword [eax*8 + 0x5581ac]
mov dword [esp + 0x3c], eax
movzx eax, byte [esp + 0x214]
mov dword [esp + 0x38], ecx
mov ecx, dword [eax*8 + 0x5581a8]
mov eax, dword [eax*8 + 0x5581ac]
mov dword [esp + 0x2c], eax
movzx eax, byte [esp + 0x20d]
mov dword [esp + 0x28], ecx
mov ecx, dword [eax*8 + 0x5581a8]
mov eax, dword [eax*8 + 0x5581ac]
mov dword [esp + 0x1e8], ebx
mov dword [esp + 0x1ec], ebp
mov dword [esp + 0x178], edi
mov dword [esp + 0x18], ecx
mov ebx, edx
mov ebp, esi
shrd ebx, ebp, 8
shr ebp, 8
xor ebp, dword [esp + 0x17c]
xor ebx, edi
shrd ebx, ebp, 8
xor ebx, dword [esp + 0x38]
shr ebp, 8
xor ebp, dword [esp + 0x3c]
mov dword [esp + 0x1c], eax
shrd ebx, ebp, 8
xor ebx, dword [esp + 0x28]
movzx eax, byte [esp + 0x246]
mov ecx, dword [eax*8 + 0x5581a8]
mov eax, dword [eax*8 + 0x5581ac]
shr ebp, 8
xor ebp, dword [esp + 0x2c]
mov dword [esp + 0x14], eax
shrd ebx, ebp, 8
xor ebx, dword [esp + 0x18]
shr ebp, 8
xor ebp, dword [esp + 0x1c]
mov dword [esp + 0x10], ecx
movzx ecx, byte [esp + 0x23f]
mov eax, dword [ecx*8 + 0x5581a8]
mov ecx, dword [ecx*8 + 0x5581ac]
shrd ebx, ebp, 8
xor ebx, dword [esp + 0x10]
shr ebp, 8
xor ebp, dword [esp + 0x14]
shrd ebx, ebp, 8
xor ebx, eax
shr ebp, 8
xor ebp, ecx
shld ecx, eax, 8
xor ecx, dword [esp + 0x14]
shl eax, 8
xor eax, dword [esp + 0x10]
shrd ebx, ebp, 8
shld ecx, eax, 8
xor ecx, dword [esp + 0x1c]
shl eax, 8
xor eax, dword [esp + 0x18]
shr ebp, 8
shld ecx, eax, 8
xor ecx, dword [esp + 0x2c]
shl eax, 8
xor eax, dword [esp + 0x28]
shld ecx, eax, 8
xor ecx, dword [esp + 0x3c]
shl eax, 8
xor eax, dword [esp + 0x38]
shld ecx, eax, 8
xor ecx, dword [esp + 0x17c]
shl eax, 8
xor eax, edi
shld ecx, eax, 8
shl eax, 8
xor eax, edx
xor ecx, esi
shld ecx, eax, 8
shl eax, 8
xor ebx, eax
movzx eax, byte [esp + 0x230]
xor ebx, dword [eax*8 + 0x5581a8]
xor ebp, ecx
xor ebp, dword [eax*8 + 0x5581ac]
movzx eax, byte [esp + 0x231]
mov edx, dword [eax*8 + 0x5581a8]
mov esi, dword [eax*8 + 0x5581ac]
movzx eax, byte [esp + 0x22a]
mov ecx, dword [eax*8 + 0x5581ac]
mov edi, dword [eax*8 + 0x5581a8]
movzx eax, byte [esp + 0x223]
mov dword [esp + 0x18c], ecx
mov ecx, dword [eax*8 + 0x5581a8]
mov dword [esp + 0x1f0], ebx
mov dword [esp + 0x1f4], ebp
mov dword [esp + 0x188], edi
mov dword [esp + 0x78], ecx
mov eax, dword [eax*8 + 0x5581ac]
mov dword [esp + 0x7c], eax
movzx eax, byte [esp + 0x21c]
mov ecx, dword [eax*8 + 0x5581a8]
mov eax, dword [eax*8 + 0x5581ac]
mov ebx, edx
mov ebp, esi
shrd ebx, ebp, 8
shr ebp, 8
xor ebp, dword [esp + 0x18c]
xor ebx, edi
shrd ebx, ebp, 8
xor ebx, dword [esp + 0x78]
mov dword [esp + 0x6c], eax
movzx eax, byte [esp + 0x215]
shr ebp, 8
xor ebp, dword [esp + 0x7c]
mov dword [esp + 0x68], ecx
mov ecx, dword [eax*8 + 0x5581a8]
mov eax, dword [eax*8 + 0x5581ac]
shrd ebx, ebp, 8
xor ebx, dword [esp + 0x68]
mov dword [esp + 0x5c], eax
movzx eax, byte [esp + 0x20e]
shr ebp, 8
xor ebp, dword [esp + 0x6c]
mov dword [esp + 0x58], ecx
mov ecx, dword [eax*8 + 0x5581a8]
mov eax, dword [eax*8 + 0x5581ac]
shrd ebx, ebp, 8
xor ebx, dword [esp + 0x58]
mov dword [esp + 0x4c], eax
shr ebp, 8
xor ebp, dword [esp + 0x5c]
mov dword [esp + 0x48], ecx
movzx ecx, byte [esp + 0x247]
mov eax, dword [ecx*8 + 0x5581a8]
mov ecx, dword [ecx*8 + 0x5581ac]
shrd ebx, ebp, 8
xor ebx, dword [esp + 0x48]
shr ebp, 8
xor ebp, dword [esp + 0x4c]
shrd ebx, ebp, 8
xor ebx, eax
shr ebp, 8
xor ebp, ecx
shld ecx, eax, 8
xor ecx, dword [esp + 0x4c]
shl eax, 8
xor eax, dword [esp + 0x48]
shrd ebx, ebp, 8
shld ecx, eax, 8
xor ecx, dword [esp + 0x5c]
shl eax, 8
xor eax, dword [esp + 0x58]
shr ebp, 8
shld ecx, eax, 8
xor ecx, dword [esp + 0x6c]
shl eax, 8
xor eax, dword [esp + 0x68]
shld ecx, eax, 8
xor ecx, dword [esp + 0x7c]
shl eax, 8
xor eax, dword [esp + 0x78]
shld ecx, eax, 8
xor ecx, dword [esp + 0x18c]
shl eax, 8
xor eax, edi
shld ecx, eax, 8
shl eax, 8
xor eax, edx
xor ecx, esi
shld ecx, eax, 8
shl eax, 8
xor ebx, eax
movzx eax, byte [esp + 0x238]
xor ebx, dword [eax*8 + 0x5581a8]
xor ebp, ecx
xor ebp, dword [eax*8 + 0x5581ac]
mov dword [esp + 0x1f8], ebx
mov dword [esp + 0x1fc], ebp
movzx eax, byte [esp + 0x239]
mov edx, dword [eax*8 + 0x5581a8]
mov esi, dword [eax*8 + 0x5581ac]
movzx eax, byte [esp + 0x232]
mov ecx, dword [eax*8 + 0x5581ac]
mov edi, dword [eax*8 + 0x5581a8]
movzx eax, byte [esp + 0x22b]
mov dword [esp + 0x174], ecx
mov ecx, dword [eax*8 + 0x5581a8]
mov eax, dword [eax*8 + 0x5581ac]
mov dword [esp + 0xbc], eax
movzx eax, byte [esp + 0x224]
mov dword [esp + 0xb8], ecx
mov ecx, dword [eax*8 + 0x5581a8]
mov eax, dword [eax*8 + 0x5581ac]
mov ebx, edx
mov ebp, esi
shrd ebx, ebp, 8
shr ebp, 8
xor ebp, dword [esp + 0x174]
xor ebx, edi
shrd ebx, ebp, 8
xor ebx, dword [esp + 0xb8]
shr ebp, 8
xor ebp, dword [esp + 0xbc]
mov dword [esp + 0xac], eax
movzx eax, byte [esp + 0x21d]
shrd ebx, ebp, 8
mov dword [esp + 0xa8], ecx
mov ecx, dword [eax*8 + 0x5581a8]
mov eax, dword [eax*8 + 0x5581ac]
xor ebx, dword [esp + 0xa8]
shr ebp, 8
xor ebp, dword [esp + 0xac]
mov dword [esp + 0x9c], eax
movzx eax, byte [esp + 0x216]
shrd ebx, ebp, 8
mov dword [esp + 0x98], ecx
mov ecx, dword [eax*8 + 0x5581a8]
mov eax, dword [eax*8 + 0x5581ac]
xor ebx, dword [esp + 0x98]
shr ebp, 8
xor ebp, dword [esp + 0x9c]
mov dword [esp + 0x8c], eax
mov dword [esp + 0x88], ecx
movzx ecx, byte [esp + 0x20f]
mov eax, dword [ecx*8 + 0x5581a8]
mov ecx, dword [ecx*8 + 0x5581ac]
shrd ebx, ebp, 8
xor ebx, dword [esp + 0x88]
shr ebp, 8
xor ebp, dword [esp + 0x8c]
mov dword [esp + 0x170], edi
shrd ebx, ebp, 8
xor ebx, eax
shr ebp, 8
xor ebp, ecx
shld ecx, eax, 8
xor ecx, dword [esp + 0x8c]
shl eax, 8
xor eax, dword [esp + 0x88]
shrd ebx, ebp, 8
shld ecx, eax, 8
xor ecx, dword [esp + 0x9c]
shl eax, 8
xor eax, dword [esp + 0x98]
shr ebp, 8
shld ecx, eax, 8
xor ecx, dword [esp + 0xac]
shl eax, 8
xor eax, dword [esp + 0xa8]
shld ecx, eax, 8
xor ecx, dword [esp + 0xbc]
shl eax, 8
xor eax, dword [esp + 0xb8]
shld ecx, eax, 8
xor ecx, dword [esp + 0x174]
shl eax, 8
xor eax, edi
shld ecx, eax, 8
shl eax, 8
xor eax, edx
xor ecx, esi
shld ecx, eax, 8
shl eax, 8
xor ebx, eax
movzx eax, byte [esp + 0x240]
xor ebx, dword [eax*8 + 0x5581a8]
xor ebp, ecx
xor ebp, dword [eax*8 + 0x5581ac]
mov ecx, 0x10
lea esi, [esp + 0x1c8]
lea edi, [esp + 0x208]
mov dword [esp + 0x200], ebx
mov dword [esp + 0x204], ebp
mov eax, 2
rep movsd dword es:[edi], dword [esi]
xor ecx, ecx
lea edx, [eax + 6]
lea esi, [eax - 3]
and esi, 7
movzx esi, byte [esp + esi*8 + 0x249]
mov edi, dword [esi*8 + 0x5581a8]
mov ebx, dword [esi*8 + 0x5581ac]
lea esi, [eax - 4]
and esi, 7
movzx esi, byte [esp + esi*8 + 0x24a]
mov ebp, dword [esi*8 + 0x5581a8]
mov esi, dword [esi*8 + 0x5581ac]
mov dword [esp + 0x10c], esi
mov dword [esp + 0x1b4], ebx
mov dword [esp + 0x1b0], edi
shrd edi, ebx, 8
shr ebx, 8
xor ebx, dword [esp + 0x10c]
lea esi, [eax + 3]
and esi, 7
movzx esi, byte [esp + esi*8 + 0x24b]
mov dword [esp + 0x108], ebp
mov ebp, dword [esi*8 + 0x5581a8]
mov esi, dword [esi*8 + 0x5581ac]
xor edi, dword [esp + 0x108]
mov dword [esp + 0xfc], esi
shrd edi, ebx, 8
shr ebx, 8
xor ebx, dword [esp + 0xfc]
lea esi, [eax + 2]
and esi, 7
movzx esi, byte [esp + esi*8 + 0x24c]
mov dword [esp + 0xf8], ebp
mov ebp, dword [esi*8 + 0x5581a8]
mov esi, dword [esi*8 + 0x5581ac]
xor edi, dword [esp + 0xf8]
mov dword [esp + 0xec], esi
shrd edi, ebx, 8
lea esi, [eax + 1]
mov dword [esp + 0x194], esi
and esi, 7
movzx esi, byte [esp + esi*8 + 0x24d]
shr ebx, 8
xor ebx, dword [esp + 0xec]
mov dword [esp + 0xe8], ebp
mov ebp, dword [esi*8 + 0x5581a8]
xor edi, dword [esp + 0xe8]
mov esi, dword [esi*8 + 0x5581ac]
shrd edi, ebx, 8
mov dword [esp + 0xdc], esi
mov esi, eax
shr ebx, 8
xor ebx, dword [esp + 0xdc]
and esi, 7
movzx esi, byte [esp + esi*8 + 0x24e]
mov dword [esp + 0xd8], ebp
xor edi, dword [esp + 0xd8]
mov ebp, dword [esi*8 + 0x5581a8]
mov esi, dword [esi*8 + 0x5581ac]
shrd edi, ebx, 8
shr ebx, 8
mov dword [esp + 0xcc], esi
xor ebx, dword [esp + 0xcc]
dec eax
and eax, 7
movzx esi, byte [esp + eax*8 + 0x24f]
mov eax, dword [esi*8 + 0x5581a8]
mov esi, dword [esi*8 + 0x5581ac]
xor edi, ebp
shrd edi, ebx, 8
shr ebx, 8
xor ebx, esi
shld esi, eax, 8
xor esi, dword [esp + 0xcc]
xor edi, eax
shl eax, 8
xor eax, ebp
shld esi, eax, 8
shrd edi, ebx, 8
shl eax, 8
shr ebx, 8
xor eax, dword [esp + 0xd8]
mov dword [esp + 0xc8], ebp
xor esi, dword [esp + 0xdc]
add ecx, 8
shld esi, eax, 8
xor esi, dword [esp + 0xec]
shl eax, 8
xor eax, dword [esp + 0xe8]
shld esi, eax, 8
xor esi, dword [esp + 0xfc]
shl eax, 8
xor eax, dword [esp + 0xf8]
shld esi, eax, 8
xor esi, dword [esp + 0x10c]
shl eax, 8
xor eax, dword [esp + 0x108]
shld esi, eax, 8
xor esi, dword [esp + 0x1b4]
shl eax, 8
xor eax, dword [esp + 0x1b0]
shld esi, eax, 8
shl eax, 8
xor edi, eax
movzx eax, byte [esp + ecx + 0x240]
xor edi, dword [eax*8 + 0x5581a8]
xor ebx, esi
xor ebx, dword [eax*8 + 0x5581ac]
xor dword [esp + ecx + 0x1c0], edi
xor dword [esp + ecx + 0x1c4], ebx
sub edx, 1
mov eax, dword [esp + 0x194]
jne 0x4d8b52
mov eax, dword [esp + 0xe4]
add eax, 8
cmp eax, 0x5589f8
mov ecx, 0x10
lea esi, [esp + 0x1c8]
lea edi, [esp + 0x248]
rep movsd dword es:[edi], dword [esi]
mov dword [esp + 0xe4], eax
jl 0x4d7c30
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x1c0]
mov edi, dword [esp + 0x34]
lea ebp, [edx + 0x10]
mov edx, dword [esp + 0x1ac]
lea esp, [esp]
lea esi, [edx + eax]
movzx ebx, byte [edi + esi]
xor bl, byte [eax]
add eax, 4
xor bl, byte [esi]
mov esi, dword [esp + 0x1c4]
mov byte [eax - 4], bl
movzx ebx, byte [esi + eax - 4]
xor bl, byte [ecx - 1]
mov esi, dword [esp + 0x1bc]
xor byte [eax - 3], bl
movzx ebx, byte [esi + eax - 4]
xor bl, byte [eax - 2]
mov esi, dword [esp + 0x198]
xor bl, byte [ecx]
add ecx, 4
mov byte [eax - 2], bl
movzx ebx, byte [esi + eax - 4]
xor bl, byte [ecx - 3]
xor byte [eax - 1], bl
sub ebp, 1
jne 0x4d8df0
mov esi, dword [esp + 0x24]
add esi, 0x40
add edi, 0x40
sub dword [esp + 0x29c], 1
mov dword [esp + 0x24], esi
mov dword [esp + 0x44], ecx
mov dword [esp + 0x34], edi
jne 0x4d7bf0
jmp 0x4d8e79
mov edx, dword [esp + 0x29c]
push edx
push eax
push ecx
call fcn.004f6bc0
add esp, 0xc
mov ecx, dword [esp + 0x28c]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00511c1b
add esp, 0x284
ret