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

Disassembly:
sub esp, 0x104
push ebx
mov ebx, dword [esp + 0x118]
push ebp
push esi
mov esi, ecx
push edi
test ebx, ebx
mov dword [esp + 0xb4], esi
jne 0x5bee2d
pop edi
pop esi
pop ebp
mov al, 1
pop ebx
add esp, 0x104
ret 0x18
mov ebp, dword [esp + 0x120]
test ebp, ebp
je 0x5bf9c7
mov ecx, dword [esp + 0x128]
push ebx
call fcn.004dda20
test eax, eax
mov dword [esp + 0x88], eax
je 0x5bf9c7
mov al, byte [esi + 0x88]
test al, al
je 0x5bee9f
mov edx, dword [esi + 0x90]
mov al, byte [esp + 0x118]
add edx, ebx
mov dword [esi + 0x90], edx
mov ecx, dword [esi + 0x94]
adc ecx, 0
test al, al
mov dword [esi + 0x94], ecx
jne 0x5bee9f
push ebx
push ebp
lea ecx, [esi + 0x98]
call fcn.00626e50
test al, al
je 0x5bf9c7
mov eax, dword [esp + 0x11c]
mov dword [esp + 0xd0], ebx
mov ecx, dword [eax + 0x444]
mov edx, dword [eax + 0x448]
mov dword [esp + 0xc4], ecx
mov ecx, dword [eax + 0x44c]
mov dword [esp + 0x90], edx
mov edx, dword [eax + 0x450]
mov dword [esp + 0x98], ecx
mov ecx, dword [eax + 0x454]
mov dword [esp + 0xb8], edx
mov edx, dword [eax + 0x458]
mov dword [esp + 0xa0], ecx
mov ecx, dword [eax + 0x45c]
mov dword [esp + 0xc0], edx
mov edx, dword [eax + 0x460]
mov dword [esp + 0xa8], ecx
mov ecx, dword [eax + 0x464]
mov dword [esp + 0xc8], edx
mov edx, dword [eax + 0x468]
mov dword [esp + 0xb0], ecx
mov ecx, dword [eax + 0x46c]
mov dword [esp + 0xbc], edx
mov edx, dword [eax + 0x470]
mov dword [esp + 0x94], ecx
mov ecx, dword [eax + 0x474]
mov dword [esp + 0x9c], edx
mov edx, dword [eax + 0x478]
mov dword [esp + 0x8c], ecx
mov ecx, dword [eax + 0x47c]
mov dword [esp + 0x40], edx
mov edx, dword [eax + 0x480]
mov dword [esp + 0xa4], ecx
mov dword [esp + 0xac], edx
cmp ebx, 0x40
jae 0x5befa6
xor eax, eax
test ebx, ebx
jbe 0x5bef9f
lea ecx, [esp + 0xd4]
sub ebp, ecx
lea esi, [esp + eax + 0xd4]
inc eax
cmp eax, ebx
mov dl, byte [esi + ebp]
mov byte [esi], dl
jb 0x5bef8e
lea ebp, [esp + 0xd4]
mov ebx, dword [esp + 0x94]
mov ecx, dword [esp + 0x98]
mov dword [esp + 0x34], ebx
mov ebx, dword [esp + 0x9c]
mov edx, dword [esp + 0xb8]
mov dword [esp + 0x38], ebx
mov ebx, dword [esp + 0x8c]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0xc0]
mov dword [esp + 0x28], ebx
mov ebx, dword [esp + 0x40]
mov eax, dword [esp + 0xc4]
mov edi, dword [esp + 0x90]
mov esi, dword [esp + 0xb0]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0xa8]
mov dword [esp + 0x2c], ebx
mov ebx, dword [esp + 0xa4]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0xc8]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0xa0]
mov dword [esp + 0x30], ebx
mov ebx, dword [esp + 0xac]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0xbc]
mov dword [esp + 0x24], edx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x44], 0xa
add eax, edx
mov edx, dword [esp + 0x28]
xor edx, eax
mov ebx, edx
shr ebx, 0x10
shl edx, 0x10
or ebx, edx
add esi, ebx
mov dword [esp + 0x28], ebx
mov ebx, dword [esp + 0x24]
mov edx, esi
xor edx, ebx
mov ebx, edx
shr ebx, 0x14
shl edx, 0xc
or ebx, edx
mov edx, dword [esp + 0x28]
add eax, ebx
mov dword [esp + 0x24], ebx
xor edx, eax
mov ebx, edx
shr ebx, 0x18
shl edx, 8
or ebx, edx
add esi, ebx
mov dword [esp + 0x28], ebx
mov ebx, dword [esp + 0x24]
mov edx, esi
xor edx, ebx
mov ebx, edx
shr ebx, 0x19
shl edx, 7
or ebx, edx
mov edx, dword [esp + 0x10]
add edi, edx
mov edx, dword [esp + 0x2c]
xor edx, edi
mov dword [esp + 0x24], ebx
mov ebx, edx
shr ebx, 0x10
shl edx, 0x10
or ebx, edx
add ecx, ebx
mov dword [esp + 0x2c], ebx
mov ebx, dword [esp + 0x10]
mov edx, ecx
xor edx, ebx
mov ebx, edx
shr ebx, 0x14
shl edx, 0xc
or ebx, edx
mov edx, dword [esp + 0x2c]
add edi, ebx
mov dword [esp + 0x10], ebx
xor edx, edi
mov ebx, edx
shr ebx, 0x18
shl edx, 8
or ebx, edx
add ecx, ebx
mov dword [esp + 0x2c], ebx
mov ebx, dword [esp + 0x10]
mov edx, ecx
xor edx, ebx
mov ebx, edx
shr ebx, 0x19
shl edx, 7
or ebx, edx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0x20]
add ebx, edx
mov edx, dword [esp + 0x30]
xor edx, ebx
mov dword [esp + 0x20], ebx
mov ebx, edx
shr ebx, 0x10
shl edx, 0x10
or ebx, edx
mov edx, dword [esp + 0x34]
mov dword [esp + 0x30], ebx
add edx, ebx
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x34], edx
xor edx, ebx
mov ebx, edx
shl edx, 0xc
shr ebx, 0x14
or ebx, edx
mov edx, dword [esp + 0x20]
add edx, ebx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x30]
xor edx, dword [esp + 0x20]
mov ebx, edx
shr ebx, 0x18
shl edx, 8
or ebx, edx
mov edx, dword [esp + 0x34]
add edx, ebx
mov dword [esp + 0x30], ebx
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x34], edx
xor edx, ebx
mov ebx, edx
shr ebx, 0x19
shl edx, 7
or ebx, edx
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x14], ebx
mov ebx, dword [esp + 0x18]
add ebx, edx
mov edx, dword [esp + 0x3c]
xor edx, ebx
mov dword [esp + 0x18], ebx
mov ebx, edx
shr ebx, 0x10
shl edx, 0x10
or ebx, edx
mov edx, dword [esp + 0x38]
mov dword [esp + 0x3c], ebx
add edx, ebx
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x38], edx
xor edx, ebx
mov ebx, edx
shr ebx, 0x14
shl edx, 0xc
or ebx, edx
mov edx, dword [esp + 0x18]
add edx, ebx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x3c]
xor edx, dword [esp + 0x18]
mov ebx, edx
shr ebx, 0x18
shl edx, 8
or ebx, edx
mov edx, dword [esp + 0x38]
mov dword [esp + 0x3c], ebx
add edx, ebx
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x38], edx
xor edx, ebx
mov ebx, edx
shr ebx, 0x19
shl edx, 7
or ebx, edx
mov edx, dword [esp + 0x10]
add eax, edx
mov edx, dword [esp + 0x3c]
xor edx, eax
mov dword [esp + 0x1c], ebx
mov ebx, edx
shr ebx, 0x10
shl edx, 0x10
or ebx, edx
mov dword [esp + 0x3c], ebx
mov edx, dword [esp + 0x34]
add edx, ebx
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x34], edx
xor edx, ebx
mov ebx, edx
shr ebx, 0x14
shl edx, 0xc
or ebx, edx
mov edx, dword [esp + 0x3c]
add eax, ebx
mov dword [esp + 0x10], ebx
xor edx, eax
mov ebx, edx
shr ebx, 0x18
shl edx, 8
or ebx, edx
mov edx, dword [esp + 0x34]
add edx, ebx
mov dword [esp + 0x3c], ebx
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x34], edx
xor edx, ebx
mov ebx, edx
shr ebx, 0x19
shl edx, 7
or ebx, edx
mov edx, dword [esp + 0x14]
add edi, edx
mov edx, dword [esp + 0x28]
xor edx, edi
mov dword [esp + 0x10], ebx
mov ebx, edx
shr ebx, 0x10
shl edx, 0x10
or ebx, edx
mov edx, dword [esp + 0x38]
add edx, ebx
mov dword [esp + 0x28], ebx
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x38], edx
xor edx, ebx
mov ebx, edx
shr ebx, 0x14
shl edx, 0xc
or ebx, edx
mov edx, dword [esp + 0x28]
add edi, ebx
mov dword [esp + 0x14], ebx
xor edx, edi
mov ebx, edx
shr ebx, 0x18
shl edx, 8
or ebx, edx
mov edx, dword [esp + 0x38]
mov dword [esp + 0x28], ebx
add edx, ebx
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x38], edx
xor edx, ebx
mov ebx, edx
shr ebx, 0x19
shl edx, 7
or ebx, edx
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x14], ebx
mov ebx, dword [esp + 0x20]
add ebx, edx
mov edx, dword [esp + 0x2c]
xor edx, ebx
mov dword [esp + 0x20], ebx
mov ebx, edx
shr ebx, 0x10
shl edx, 0x10
or ebx, edx
add esi, ebx
mov dword [esp + 0x2c], ebx
mov ebx, dword [esp + 0x1c]
mov edx, esi
xor edx, ebx
mov ebx, edx
shr ebx, 0x14
shl edx, 0xc
or ebx, edx
mov edx, dword [esp + 0x20]
add edx, ebx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x2c]
xor edx, dword [esp + 0x20]
mov ebx, edx
shr ebx, 0x18
shl edx, 8
or edx, ebx
mov ebx, dword [esp + 0x1c]
add esi, edx
mov dword [esp + 0x2c], edx
mov edx, esi
xor edx, ebx
mov ebx, edx
shr ebx, 0x19
shl edx, 7
or ebx, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x18]
add ebx, edx
mov edx, dword [esp + 0x30]
xor edx, ebx
mov dword [esp + 0x18], ebx
mov ebx, edx
shr ebx, 0x10
shl edx, 0x10
or ebx, edx
add ecx, ebx
mov dword [esp + 0x30], ebx
mov ebx, dword [esp + 0x24]
mov edx, ecx
xor edx, ebx
mov ebx, edx
shr ebx, 0x14
shl edx, 0xc
or ebx, edx
mov edx, dword [esp + 0x18]
add edx, ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x30]
xor edx, dword [esp + 0x18]
mov ebx, edx
shr ebx, 0x18
shl edx, 8
or edx, ebx
mov ebx, dword [esp + 0x24]
add ecx, edx
mov dword [esp + 0x30], edx
mov edx, ecx
xor edx, ebx
mov ebx, edx
shr ebx, 0x19
shl edx, 7
or edx, ebx
mov ebx, dword [esp + 0x44]
dec ebx
mov dword [esp + 0x24], edx
mov dword [esp + 0x44], ebx
jne 0x5bf04b
xor edx, edx
xor ebx, ebx
mov dh, byte [ebp + 3]
mov bl, byte [ebp + 1]
mov dl, byte [ebp + 2]
shl edx, 8
or edx, ebx
xor ebx, ebx
mov bl, byte [ebp]
shl edx, 8
or edx, ebx
mov ebx, dword [esp + 0xc4]
add eax, ebx
xor ebx, ebx
mov bl, byte [ebp + 5]
xor eax, edx
xor edx, edx
mov dh, byte [ebp + 7]
mov dl, byte [ebp + 6]
shl edx, 8
or edx, ebx
xor ebx, ebx
mov bl, byte [ebp + 4]
shl edx, 8
or edx, ebx
mov ebx, dword [esp + 0x90]
add edi, ebx
xor ebx, ebx
xor edx, edi
mov bl, byte [ebp + 9]
mov dword [esp + 0x44], edx
xor edx, edx
mov dh, byte [ebp + 0xb]
mov edi, dword [esp + 0x20]
mov dl, byte [ebp + 0xa]
shl edx, 8
or edx, ebx
xor ebx, ebx
mov bl, byte [ebp + 8]
shl edx, 8
or edx, ebx
mov ebx, dword [esp + 0x98]
add edi, ebx
xor ebx, ebx
xor edx, edi
mov bl, byte [ebp + 0xd]
mov dword [esp + 0x20], edx
xor edx, edx
mov dh, byte [ebp + 0xf]
mov edi, dword [esp + 0x18]
mov dl, byte [ebp + 0xe]
shl edx, 8
or edx, ebx
xor ebx, ebx
mov bl, byte [ebp + 0xc]
shl edx, 8
or edx, ebx
mov ebx, dword [esp + 0xb8]
add edi, ebx
xor ebx, ebx
xor edx, edi
mov bl, byte [ebp + 0x11]
mov dword [esp + 0x18], edx
xor edx, edx
mov dh, byte [ebp + 0x13]
mov edi, dword [esp + 0x24]
mov dl, byte [ebp + 0x12]
shl edx, 8
or edx, ebx
xor ebx, ebx
mov bl, byte [ebp + 0x10]
shl edx, 8
or edx, ebx
mov ebx, dword [esp + 0xa0]
add edi, ebx
xor edx, edi
mov dword [esp + 0x24], edx
xor edx, edx
mov dh, byte [ebp + 0x17]
mov dl, byte [ebp + 0x16]
shl edx, 8
xor ebx, ebx
mov edi, dword [esp + 0x10]
mov bl, byte [ebp + 0x15]
or edx, ebx
xor ebx, ebx
mov bl, byte [ebp + 0x14]
shl edx, 8
or edx, ebx
mov ebx, dword [esp + 0xc0]
add edi, ebx
xor ebx, ebx
xor edx, edi
mov bl, byte [ebp + 0x19]
mov dword [esp + 0x10], edx
xor edx, edx
mov dh, byte [ebp + 0x1b]
mov edi, dword [esp + 0x14]
mov dl, byte [ebp + 0x1a]
shl edx, 8
or edx, ebx
xor ebx, ebx
mov bl, byte [ebp + 0x18]
shl edx, 8
or edx, ebx
mov ebx, dword [esp + 0xa8]
add edi, ebx
xor ebx, ebx
xor edx, edi
mov bl, byte [ebp + 0x1d]
mov dword [esp + 0x14], edx
xor edx, edx
mov dh, byte [ebp + 0x1f]
mov edi, dword [esp + 0x1c]
mov dl, byte [ebp + 0x1e]
shl edx, 8
or edx, ebx
xor ebx, ebx
mov bl, byte [ebp + 0x1c]
shl edx, 8
or edx, ebx
mov ebx, dword [esp + 0xc8]
add edi, ebx
xor ebx, ebx
xor edx, edi
mov bl, byte [ebp + 0x21]
mov dword [esp + 0x1c], edx
xor edx, edx
mov dh, byte [ebp + 0x23]
mov edi, dword [esp + 0xb0]
mov dl, byte [ebp + 0x22]
add esi, edi
shl edx, 8
or edx, ebx
xor ebx, ebx
mov bl, byte [ebp + 0x20]
shl edx, 8
or edx, ebx
xor ebx, ebx
xor edx, esi
mov bl, byte [ebp + 0x25]
mov dword [esp + 0xcc], edx
xor edx, edx
mov dh, byte [ebp + 0x27]
mov esi, dword [esp + 0xbc]
mov dl, byte [ebp + 0x26]
add ecx, esi
shl edx, 8
or edx, ebx
xor ebx, ebx
mov bl, byte [ebp + 0x24]
shl edx, 8
or edx, ebx
xor ebx, ebx
mov bl, byte [ebp + 0x29]
xor ecx, edx
xor edx, edx
mov dh, byte [ebp + 0x2b]
mov dl, byte [ebp + 0x2a]
shl edx, 8
or edx, ebx
shl edx, 8
mov esi, dword [esp + 0x34]
mov edi, dword [esp + 0x94]
xor ebx, ebx
add esi, edi
mov bl, byte [ebp + 0x28]
mov edi, dword [esp + 0x9c]
or edx, ebx
xor ebx, ebx
xor edx, esi
mov bl, byte [ebp + 0x2d]
mov dword [esp + 0x34], edx
xor edx, edx
mov dh, byte [ebp + 0x2f]
mov esi, dword [esp + 0x38]
mov dl, byte [ebp + 0x2e]
add esi, edi
shl edx, 8
or edx, ebx
xor ebx, ebx
mov bl, byte [ebp + 0x2c]
mov edi, dword [esp + 0x28]
shl edx, 8
or edx, ebx
xor ebx, ebx
xor edx, esi
mov bl, byte [ebp + 0x31]
mov dword [esp + 0x38], edx
xor edx, edx
mov dh, byte [ebp + 0x33]
mov esi, dword [esp + 0x8c]
mov dl, byte [ebp + 0x32]
add edi, esi
shl edx, 8
or edx, ebx
xor ebx, ebx
mov bl, byte [ebp + 0x30]
shl edx, 8
or edx, ebx
xor ebx, ebx
xor edx, edi
mov bl, byte [ebp + 0x35]
mov dword [esp + 0x28], edx
xor edx, edx
mov dh, byte [ebp + 0x37]
mov edi, dword [esp + 0x2c]
mov dl, byte [ebp + 0x36]
shl edx, 8
or edx, ebx
xor ebx, ebx
mov bl, byte [ebp + 0x34]
shl edx, 8
or edx, ebx
mov ebx, dword [esp + 0x40]
add edi, ebx
xor ebx, ebx
xor edx, edi
mov bl, byte [ebp + 0x39]
mov dword [esp + 0x2c], edx
xor edx, edx
mov dh, byte [ebp + 0x3b]
mov edi, dword [esp + 0x30]
mov dl, byte [ebp + 0x3a]
shl edx, 8
or edx, ebx
xor ebx, ebx
mov bl, byte [ebp + 0x38]
shl edx, 8
or edx, ebx
mov ebx, dword [esp + 0xa4]
add edi, ebx
xor ebx, ebx
xor edx, edi
mov bl, byte [ebp + 0x3d]
mov dword [esp + 0x30], edx
xor edx, edx
mov dh, byte [ebp + 0x3f]
mov dl, byte [ebp + 0x3e]
shl edx, 8
or edx, ebx
shl edx, 8
xor ebx, ebx
mov bl, byte [ebp + 0x3c]
mov edi, dword [esp + 0x3c]
or edx, ebx
mov ebx, dword [esp + 0xac]
add edi, ebx
xor edx, edi
inc esi
mov dword [esp + 0x8c], esi
jne 0x5bf6b0
inc dword [esp + 0x40]
mov ebx, eax
mov byte [esp + 0x48], al
shr ebx, 8
mov byte [esp + 0x49], bl
mov ebx, eax
shr eax, 0x18
shr ebx, 0x10
mov byte [esp + 0x4b], al
mov eax, dword [esp + 0x44]
mov byte [esp + 0x4a], bl
mov ebx, eax
shr ebx, 8
mov byte [esp + 0x4d], bl
mov byte [esp + 0x4c], al
mov ebx, eax
shr eax, 0x18
shr ebx, 0x10
mov byte [esp + 0x4f], al
mov eax, dword [esp + 0x20]
mov byte [esp + 0x4e], bl
mov ebx, eax
shr ebx, 8
mov byte [esp + 0x51], bl
mov byte [esp + 0x50], al
mov ebx, eax
shr eax, 0x18
shr ebx, 0x10
mov byte [esp + 0x53], al
mov eax, dword [esp + 0x18]
mov byte [esp + 0x52], bl
mov ebx, eax
shr ebx, 8
mov byte [esp + 0x55], bl
mov byte [esp + 0x54], al
mov ebx, eax
shr eax, 0x18
shr ebx, 0x10
mov byte [esp + 0x57], al
mov eax, dword [esp + 0x24]
mov byte [esp + 0x56], bl
mov ebx, eax
shr ebx, 8
mov byte [esp + 0x59], bl
mov byte [esp + 0x58], al
mov ebx, eax
shr eax, 0x18
shr ebx, 0x10
mov byte [esp + 0x5b], al
mov eax, dword [esp + 0x10]
mov byte [esp + 0x5a], bl
mov ebx, eax
shr ebx, 8
mov byte [esp + 0x5d], bl
mov byte [esp + 0x5c], al
mov ebx, eax
shr eax, 0x18
shr ebx, 0x10
mov byte [esp + 0x5f], al
mov eax, dword [esp + 0x14]
mov byte [esp + 0x5e], bl
mov ebx, eax
shr ebx, 8
mov byte [esp + 0x61], bl
mov byte [esp + 0x60], al
mov ebx, eax
shr eax, 0x18
shr ebx, 0x10
mov byte [esp + 0x63], al
mov eax, dword [esp + 0x1c]
mov byte [esp + 0x62], bl
mov ebx, eax
shr ebx, 8
mov byte [esp + 0x65], bl
mov ebx, eax
mov byte [esp + 0x64], al
shr ebx, 0x10
shr eax, 0x18
mov byte [esp + 0x67], al
mov eax, dword [esp + 0xcc]
mov byte [esp + 0x66], bl
mov byte [esp + 0x68], al
mov ebx, eax
mov byte [esp + 0x6c], cl
shr ebx, 8
mov byte [esp + 0x69], bl
mov ebx, eax
shr eax, 0x18
mov byte [esp + 0x6b], al
mov eax, ecx
shr eax, 8
mov byte [esp + 0x6d], al
mov eax, ecx
shr eax, 0x10
mov byte [esp + 0x6e], al
mov eax, dword [esp + 0x34]
shr ecx, 0x18
mov byte [esp + 0x6f], cl
mov ecx, eax
shr ecx, 8
mov byte [esp + 0x71], cl
mov byte [esp + 0x70], al
mov ecx, eax
mov byte [esp + 0x84], dl
shr eax, 0x18
shr ecx, 0x10
mov byte [esp + 0x73], al
mov eax, dword [esp + 0x38]
mov byte [esp + 0x72], cl
mov ecx, eax
shr ecx, 8
mov byte [esp + 0x75], cl
mov byte [esp + 0x74], al
mov ecx, eax
shr eax, 0x18
shr ecx, 0x10
mov byte [esp + 0x77], al
mov eax, dword [esp + 0x28]
mov byte [esp + 0x76], cl
mov ecx, eax
shr ecx, 8
mov byte [esp + 0x79], cl
mov byte [esp + 0x78], al
mov ecx, eax
shr eax, 0x18
shr ecx, 0x10
mov byte [esp + 0x7b], al
mov eax, dword [esp + 0x2c]
mov byte [esp + 0x7a], cl
mov ecx, eax
shr ecx, 8
mov byte [esp + 0x7d], cl
mov byte [esp + 0x7c], al
mov ecx, eax
shr eax, 0x18
shr ecx, 0x10
mov byte [esp + 0x7f], al
mov eax, dword [esp + 0x30]
mov byte [esp + 0x7e], cl
mov ecx, eax
shr ecx, 8
mov byte [esp + 0x81], cl
mov ecx, eax
mov byte [esp + 0x80], al
shr ecx, 0x10
shr eax, 0x18
shr ebx, 0x10
mov byte [esp + 0x82], cl
mov byte [esp + 0x83], al
mov byte [esp + 0x6a], bl
mov ebx, dword [esp + 0x124]
mov eax, edx
mov ecx, edx
shr eax, 8
shr ecx, 0x10
shr edx, 0x18
cmp ebx, 0x40
mov byte [esp + 0x85], al
mov byte [esp + 0x86], cl
mov byte [esp + 0x87], dl
jbe 0x5bf941
mov eax, dword [esp + 0x88]
mov ecx, 0x10
mov edi, eax
add eax, 0x40
lea esi, [esp + 0x48]
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0xb4]
rep movsd dword es:[edi], dword [esi]
mov cl, byte [eax + 0x88]
test cl, cl
je 0x5bf92f
mov cl, byte [esp + 0x118]
test cl, cl
je 0x5bf92f
lea edx, [esp + 0x48]
push 0x40
push edx
lea ecx, [eax + 0x98]
call fcn.00626e50
test al, al
je 0x5bf9c7
sub ebx, 0x40
add ebp, 0x40
mov dword [esp + 0x124], ebx
jmp 0x5bef7a
mov eax, dword [esp + 0x11c]
mov ecx, dword [esp + 0x40]
mov edi, dword [esp + 0x88]
mov dword [eax + 0x478], ecx
mov ecx, ebx
mov edx, ecx
mov dword [eax + 0x474], esi
lea esi, [esp + 0x48]
mov eax, dword [esp + 0xb4]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov cl, byte [eax + 0x88]
test cl, cl
je 0x5bf9a4
mov cl, byte [esp + 0x118]
test cl, cl
je 0x5bf9a4
lea ecx, [esp + 0x48]
push ebx
push ecx
lea ecx, [eax + 0x98]
call fcn.00626e50
test al, al
je 0x5bf9c7
mov edx, dword [esp + 0xd0]
mov ecx, dword [esp + 0x128]
push edx
call fcn.004dda50
pop edi
pop esi
pop ebp
mov al, 1
pop ebx
add esp, 0x104
ret 0x18
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0x104
ret 0x18