Function at 0x404dc0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x38
mov al, byte [esp + 0x50]
mov edx, dword [esp + 0x4c]
mov esi, 0x8f4a1541
mov byte [esp + 0x33], al
mov dword [esp + 0x2c], edx
mov dword [esp + 0x28], ecx
mov word [0x486aee], 0x25cc
mov di, word [0x4842fe]
movsx edx, di
mov ebx, dword [0x497808]
and edx, ebx
or edx, 0xd82fdefa
mov dword [0x48a688], edx
mov edx, dword [0x48cbf0]
not edx
mov ebx, dword [0x490d68]
add ebx, 0x468fa4bf
and edx, ebx
cmp esi, edx
mov dword [esp + 0x18], ecx
jg 0x404e46
mov eax, dword [0x496490]
or eax, 0xef2d403
mov ecx, dword [0x4930f0]
and ecx, eax
mov dword [0x4930f0], ecx
jmp 0x404e50
mov eax, dword [0x488cd4]
mov dword [0x493cfc], eax
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x18]
mov dword [ecx + 0x2020], eax
mov eax, dword [0x48c840]
mov edx, eax
dec edx
mov dword [0x48c840], edx
mov edx, dword [0x48e050]
xor edx, eax
mov dword [0x48e050], edx
mov ax, word [0x48251a]
mov cx, ax
imul ecx, ecx, 0x8538865d
mov ax, cx
mov word [0x48251a], ax
call fcn.004457e0
mov dword [esp + 0x20], eax
mov eax, dword [0x48f4dc]
add eax, 0x4851521
mov dword [0x48f4dc], eax
cmp dword [esp + 0x20], 0
setne al
xor al, 0xff
test al, 1
jne 0x404e7a
mov eax, 0xc82d474
mov ecx, dword [0x49526c]
mov edx, ecx
inc edx
mov dword [0x49526c], edx
and ecx, 0xa8374885
cmp eax, ecx
jge 0x404ee7
mov word [0x48750e], 0x15aa
mov eax, 0x33c669b0
mov dword [esp + 0x14], eax
call fcn.004457e0
mov dword [esp + 0x24], eax
mov cx, word [0x481714]
mov ax, cx
inc eax
mov dx, ax
mov word [0x481714], dx
movsx eax, cx
xor eax, 0xd8792600
mov esi, dword [0x4975a8]
add esi, eax
mov dword [0x4975a8], esi
mov bl, byte [esp + 0x33]
mov byte [esp + 0x24], bl
mov dword [0x497bb0], 0x8c255e49
mov eax, dword [esp + 0x20]
mov esi, esp
mov dword [esi], eax
call fcn.0043c690
mov esi, dword [esp + 0x24]
xor esi, eax
mov dword [esp + 0x24], esi
mov cx, word [0x483f28]
mov ax, cx
add eax, 0x9d29c037
mov cx, ax
mov word [0x483f28], cx
mov eax, dword [0x47f688]
mov esi, dword [esp + 0x18]
mov edi, dword [esi + 0x2020]
mov ebp, esp
lea esi, [esp + 0x20]
mov dword [ebp + 4], esi
mov dword [ebp], edi
mov dword [ebp + 0xc], 0
mov dword [ebp + 8], 8
call eax
sub esp, 0x10
mov dword [esp + 0x1c], eax
mov cx, word [0x47ff84]
movsx eax, cx
mov esi, dword [esp + 0x14]
sub esi, eax
xor esi, 0xeba9ed1c
cmp esi, 0x3ffef1bb
jg 0x404fce
mov eax, dword [0x48fa34]
add eax, 0x8f4eb904
mov dword [0x48fa34], eax
jmp 0x404fdd
mov eax, dword [0x4977c4]
xor eax, 0x44829299
mov dword [0x4977c4], eax
cmp dword [esp + 0x1c], 8
je 0x405079
mov eax, 0xad42848
mov cx, word [0x48467a]
mov dx, cx
and edx, 0x7138
mov cx, dx
mov word [0x48467a], cx
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x10], eax
call fcn.0043a920
mov si, word [0x486b00]
movsx eax, si
xor eax, 0xed40645a
mov ecx, dword [esp + 0x10]
cmp ecx, eax
jne 0x405043
mov eax, dword [0x48a0f0]
xor eax, 0x49b045a9
mov dword [0x48a0f0], eax
jmp 0x40506c
mov eax, dword [0x496318]
mov ecx, eax
inc ecx
mov dword [0x496318], ecx
mov ecx, dword [0x492d10]
xor eax, ecx
xor eax, 0x299a9ccc
mov ecx, dword [0x48e744]
and ecx, eax
mov dword [0x48e744], ecx
mov dword [esp + 0x34], 0xffffffff
jmp 0x4051d2
mov ax, word [0x484da6]
movsx ecx, ax
sar ecx, 4
xor ecx, 0x2f0091
mov dword [0x48d064], ecx
mov dl, byte [esp + 0x33]
movzx ecx, dl
mov esi, esp
mov dword [esi], ecx
mov ecx, dword [esp + 0x18]
call fcn.00441e20
sub esp, 4
test al, 1
jne 0x4050f6
mov ax, word [0x480a48]
mov cx, ax
xor ecx, 0xa908
mov ax, cx
mov word [0x480a48], ax
mov ecx, dword [esp + 0x18]
call fcn.0043a920
mov ax, word [0x48128a]
mov cx, ax
xor ecx, 0x4d61
mov ax, cx
mov word [0x48128a], ax
mov dword [esp + 0x34], 0xfffffffe
jmp 0x4051d2
mov ax, word [0x47fdce]
mov cx, ax
mov edx, ecx
inc edx
mov ax, dx
mov word [0x47fdce], ax
and ecx, 0x114d
mov ax, word [0x4858fc]
mov dx, ax
xor edx, ecx
mov ax, dx
mov word [0x4858fc], ax
mov ecx, dword [esp + 0x18]
mov dword [ecx], 0
mov edx, dword [0x48e51c]
inc edx
mov dword [0x48e51c], edx
mov esi, dword [0x48afa4]
imul esi, edx
mov dword [0x48afa4], esi
mov edx, dword [esp + 0x20]
mov dword [ecx + 4], edx
mov edx, dword [0x492834]
xor edx, 0xb9717217
mov dword [0x492834], edx
mov dword [ecx + 0x100c], 0
mov edx, dword [0x498378]
mov ax, word [0x485dcc]
mov si, ax
or esi, edx
mov ax, si
mov word [0x485dcc], ax
mov edx, dword [ecx + 0x201c]
mov esi, dword [esp + 0x20]
mov edi, esp
mov dword [edi], esi
call edx
mov ecx, dword [esp + 0x18]
mov dword [ecx + 0x1010], eax
mov bx, word [0x4854d0]
movsx eax, bx
shr eax, 0xa
and eax, 0x44f5
mov bx, word [0x48634c]
mov dx, bx
xor edx, eax
mov bx, dx
mov word [0x48634c], bx
mov dword [esp + 0x34], 1
mov eax, dword [esp + 0x34]
add esp, 0x38
pop esi
pop edi
pop ebx
pop ebp
ret 8