Function at 0x4381c0
Capabilities:
Encode data using xor

Disassembly:
push ebx
push edi
push esi
sub esp, 0x30
mov al, byte [esp + 0x44]
mov edx, dword [esp + 0x40]
mov esi, 0x7eaf468c
mov byte [esp + 0x2b], al
mov dword [esp + 0x24], edx
mov dword [esp + 0x20], ecx
mov edx, dword [0x499e58]
imul edx, edx, 0xb4bc43a3
mov di, word [0x4a425e]
mov bx, di
lea edx, [edx + ebx + 0x48456d6a]
mov di, dx
mov word [0x4a425e], di
mov edx, dword [0x4a2104]
add edx, 0x3f8da713
add edx, 0x52918aaa
cmp esi, edx
mov dword [esp + 0x10], ecx
jle 0x43823b
mov eax, dword [0x49f4b8]
mov ecx, dword [0x49fb80]
xor eax, ecx
xor eax, 0xf1a32f90
mov dword [0x49fb80], eax
mov eax, dword [0x4a04fc]
or eax, 0x4c29bbd5
mov dword [0x4a04fc], eax
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0x2020], eax
mov eax, dword [0x49d0c8]
or eax, 0x124812ba
mov dword [0x49d0c8], eax
mov eax, dword [0x4a2090]
and eax, 0x425c0411
mov dword [0x4a2090], eax
call fcn.00412100
mov dword [esp + 0x18], eax
mov eax, dword [0x4a1064]
mov ecx, dword [0x499304]
imul ecx, eax
mov dword [0x499304], ecx
cmp dword [esp + 0x18], 0
setne al
xor al, 0xff
test al, 1
jne 0x438267
mov eax, 0xb344cd5d
mov cx, word [0x4a7bf6]
movsx edx, cx
cmp eax, edx
jl 0x4382d0
mov eax, dword [0x49fa38]
add eax, 0xdfdb7f05
mov dword [0x49fa38], eax
jmp 0x4382f1
mov eax, dword [0x4a1f54]
mov ecx, eax
inc ecx
mov dword [0x4a1f54], ecx
xor eax, 0x9a7bf7af
mov ecx, dword [0x49f9f8]
add ecx, eax
mov dword [0x49f9f8], ecx
call fcn.00412100
mov dword [esp + 0x1c], eax
mov eax, dword [0x49a504]
shr eax, 3
or eax, 0xe278e8c7
mov ecx, dword [0x49b614]
imul ecx, eax
mov dword [0x49b614], ecx
mov dl, byte [esp + 0x2b]
mov byte [esp + 0x1c], dl
mov eax, dword [0x49ce94]
xor eax, 0xe691b733
mov ecx, dword [0x498d40]
imul ecx, eax
mov dword [0x498d40], ecx
mov eax, dword [esp + 0x18]
mov ecx, esp
mov dword [ecx], eax
call fcn.00446430
mov ecx, dword [esp + 0x1c]
xor ecx, eax
mov dword [esp + 0x1c], ecx
mov eax, dword [0x4a0898]
and eax, 0x6f22fde3
mov dword [0x4a0898], eax
mov eax, dword [0x497b88]
mov ecx, dword [esp + 0x10]
mov esi, dword [ecx + 0x2020]
mov edi, esp
lea ebx, [esp + 0x18]
mov dword [edi + 4], ebx
mov dword [edi], esi
mov dword [edi + 0xc], 0
mov dword [edi + 8], 8
call eax
sub esp, 0x10
mov dword [esp + 0x14], eax
mov eax, dword [0x49f9c4]
add eax, 0x4cbd0a08
mov ecx, dword [0x49e084]
sub ecx, eax
mov dword [0x49e084], ecx
cmp dword [esp + 0x14], 8
je 0x4383fc
mov ax, word [0x4a6546]
mov cx, ax
mov ax, word [0x4a4e10]
mov dx, ax
xor ecx, edx
xor ecx, 0x3908
mov ax, cx
mov word [0x4a4e10], ax
mov ecx, dword [esp + 0x10]
call fcn.00413150
mov ecx, dword [0x49e260]
xor ecx, 0x592fcfbd
mov dword [0x49e260], ecx
mov dword [esp + 0x2c], 0xffffffff
jmp 0x438617
mov eax, dword [0x497fdc]
add eax, 0x60ee3c21
mov dword [0x497fdc], eax
mov cl, byte [esp + 0x2b]
movzx eax, cl
mov edx, esp
mov dword [edx], eax
mov ecx, dword [esp + 0x10]
call fcn.00434c60
sub esp, 4
test al, 1
jne 0x438503
mov eax, dword [0x49bfa4]
shl eax, 7
mov ecx, dword [0x49ab88]
imul ecx, ecx, 0xfb75b95
add ecx, 0x2c04d3aa
cmp eax, ecx
jl 0x4384bc
mov eax, 0x9258b52
mov cx, word [0x4a67f8]
movsx edx, cx
cmp eax, edx
jg 0x438480
mov ax, word [0x4a825e]
mov cx, ax
and ecx, 0x49ff
mov ax, cx
mov word [0x4a825e], ax
jmp 0x4384b7
mov eax, dword [0x49e6fc]
mov ecx, dword [0x4a299c]
mov edx, dword [0x49abf8]
inc edx
mov dword [0x49abf8], edx
imul edx, edx, 0xa41f20e6
xor ecx, edx
cmp eax, ecx
je 0x4384ad
jmp 0x4384b2
jmp 0x4384b2
jmp 0x4384b7
jmp 0x4384d5
mov eax, dword [0x49fb50]
mov ecx, dword [0x497d80]
imul eax, ecx
imul eax, eax, 0xf1c0fa0e
mov dword [0x497d80], eax
mov ecx, dword [esp + 0x10]
call fcn.00413150
mov ax, word [0x4a62be]
mov cx, ax
add ecx, 0xb2bad708
mov ax, cx
mov word [0x4a62be], ax
mov dword [esp + 0x2c], 0xfffffffe
jmp 0x438617
mov eax, 0x92ad25fc
mov ecx, dword [0x49e5fc]
dec ecx
mov dword [0x49e5fc], ecx
mov edx, dword [0x49aad8]
xor ecx, edx
mov si, word [0x4a5ee0]
mov dx, si
or edx, ecx
mov si, dx
mov word [0x4a5ee0], si
mov ecx, dword [esp + 0x10]
mov dword [ecx], 0
mov edx, dword [0x49b888]
add edx, 0x4c539cbc
and edx, 0xd4a0752b
mov edi, dword [0x498880]
or edi, edx
mov dword [0x498880], edi
mov edx, dword [esp + 0x18]
mov dword [ecx + 4], edx
mov edx, dword [0x49efe0]
mov edi, edx
dec edi
mov dword [0x49efe0], edi
add edx, 0x18e5ab8d
mov edi, dword [0x49cfb4]
imul edi, edx
mov dword [0x49cfb4], edi
mov dword [ecx + 0x100c], 0
mov si, word [0x4a58a8]
mov dx, si
dec edx
mov bx, dx
mov word [0x4a58a8], bx
movsx edx, si
cmp eax, edx
jle 0x4385d8
mov ax, word [0x4a398a]
mov cx, ax
dec ecx
mov dx, cx
mov word [0x4a398a], dx
movsx ecx, ax
mov esi, dword [0x49b7d8]
imul esi, ecx
mov dword [0x49b7d8], esi
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x201c]
mov edx, dword [esp + 0x18]
mov esi, esp
mov dword [esi], edx
call ecx
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0x1010], eax
mov di, word [0x4a5df0]
mov ax, di
or eax, 0x9454
mov di, ax
mov word [0x4a5df0], di
mov dword [esp + 0x2c], 1
mov eax, dword [esp + 0x2c]
add esp, 0x30
pop esi
pop edi
pop ebx
ret 8