Function at 0x43bb50
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x30
mov al, byte [esp + 0x48]
mov edx, dword [esp + 0x44]
mov esi, 0xf0564b4e
mov byte [esp + 0x2b], al
mov dword [esp + 0x24], edx
mov dword [esp + 0x20], ecx
mov edx, dword [0x48b86c]
imul edx, edx, 0x5666a6c0
mov dword [0x48b86c], edx
mov edx, dword [0x499abc]
xor edx, 0xdac29f8c
mov dword [0x499abc], edx
mov edx, dword [0x484968]
mov edi, edx
dec edi
mov dword [0x484968], edi
cmp esi, edx
mov dword [esp + 0x10], ecx
jge 0x43bc14
mov ax, word [0x4a578a]
mov cx, ax
inc ecx
mov ax, cx
mov word [0x4a578a], ax
movsx ecx, ax
and ecx, 0x76e7d790
mov edx, dword [0x484184]
cmp ecx, edx
jge 0x43bc0f
mov eax, 0x33dda96
mov ecx, dword [0x48a0a4]
dec ecx
mov dword [0x48a0a4], ecx
imul ecx, ecx, 0xdafd1c35
mov edx, dword [0x4884c4]
sar edx, 0xa
imul ecx, edx
cmp eax, ecx
jne 0x43bc0a
jmp 0x43bc0a
jmp 0x43bc0f
jmp 0x43bc2c
mov eax, dword [0x498718]
mov ecx, eax
dec ecx
mov dword [0x498718], ecx
and eax, 0xf7f60ccd
mov dword [0x47f914], eax
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0x2020], eax
mov eax, dword [0x48b4b4]
mov edx, dword [0x480b38]
xor eax, edx
xor eax, 0xb1326847
mov dword [0x480b38], eax
mov eax, dword [0x48e224]
and eax, 0xfe3a1003
mov dword [0x48e224], eax
call fcn.00439720
mov dword [esp + 0x18], eax
mov eax, dword [0x48b950]
mov ecx, eax
inc ecx
mov dword [0x48b950], ecx
xor eax, 0x9462af02
mov ecx, dword [0x48b60c]
sub ecx, eax
mov dword [0x48b60c], ecx
cmp dword [esp + 0x18], 0
setne al
xor al, 0xff
test al, 1
jne 0x43bc51
mov eax, dword [0x4818a8]
inc eax
mov dword [0x4818a8], eax
mov ecx, dword [0x48f408]
or ecx, eax
mov dword [0x48f408], ecx
call fcn.00439720
mov dword [esp + 0x1c], eax
mov eax, dword [0x494f74]
add eax, 0xa2e8ae20
mov dword [0x494f74], eax
mov dl, byte [esp + 0x2b]
mov byte [esp + 0x1c], dl
mov dword [0x48fbcc], 0xdbae2e6
mov eax, dword [esp + 0x18]
mov ecx, esp
mov dword [ecx], eax
call fcn.0041d010
mov ecx, dword [esp + 0x1c]
xor ecx, eax
mov dword [esp + 0x1c], ecx
mov eax, dword [0x485890]
imul eax, eax, 0xd79ca768
mov dword [0x485890], eax
mov eax, dword [0x47efa8]
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 bp, word [0x4a64b8]
mov ax, bp
add eax, 0xd1755770
mov bp, ax
mov word [0x4a64b8], bp
cmp dword [esp + 0x14], 8
je 0x43bda4
mov dword [0x4835f8], 0xed76c7bf
mov ecx, dword [esp + 0x10]
call fcn.0041f3f0
mov ecx, dword [0x4880c8]
shl ecx, 4
add ecx, 0xe9cb9ab3
and ecx, 0xf0bd
mov ax, word [0x4a34ea]
mov dx, ax
sub edx, ecx
mov ax, dx
mov word [0x4a34ea], ax
mov dword [esp + 0x2c], 0xffffffff
jmp 0x43bfe6
mov eax, 0x63979318
mov ecx, dword [0x4987f4]
sar ecx, 8
xor ecx, 0xcabb1a81
cmp eax, ecx
jge 0x43be1e
mov eax, dword [0x493a08]
shl eax, 7
or eax, 0xea988b95
cmp eax, 0xc0e731c5
jne 0x43bdfc
mov ax, word [0x49a11a]
movsx ecx, ax
cmp ecx, 0x9c0faac2
jl 0x43bdf2
jmp 0x43bdf7
jmp 0x43bdf7
jmp 0x43be19
mov eax, 0x4c5a240e
mov ecx, dword [0x48d988]
cmp eax, ecx
jle 0x43be14
jmp 0x43be14
jmp 0x43be19
jmp 0x43be1e
mov al, byte [esp + 0x2b]
movzx ecx, al
mov edx, esp
mov dword [edx], ecx
mov ecx, dword [esp + 0x10]
call fcn.0041ad90
sub esp, 4
test al, 1
jne 0x43be9f
mov ax, word [0x4a05b4]
mov cx, ax
inc ecx
mov ax, cx
mov word [0x4a05b4], ax
movsx ecx, ax
add ecx, 0x587e0dfc
mov edx, dword [0x49444c]
imul edx, ecx
mov dword [0x49444c], edx
mov ecx, dword [esp + 0x10]
call fcn.0041f3f0
mov ecx, dword [0x491134]
mov edx, 0xb740c8ef
sub edx, ecx
mov ax, word [0x4a39da]
mov cx, ax
sub ecx, edx
mov ax, cx
mov word [0x4a39da], ax
mov dword [esp + 0x2c], 0xfffffffe
jmp 0x43bfe6
mov eax, dword [0x499bac]
mov ecx, eax
dec ecx
mov dword [0x499bac], ecx
imul eax, eax, 0x8f8e2349
add eax, 0xa9ac550
cmp eax, 0x291c6c73
jge 0x43bed7
mov eax, dword [0x48c87c]
xor eax, 0x7ff3ffe3
mov dword [0x48c87c], eax
jmp 0x43bf37
mov eax, dword [0x498518]
add eax, 0xb88ed54f
mov ecx, dword [0x489280]
xor eax, ecx
cmp eax, 0x3770c1f6
jne 0x43bf08
mov eax, dword [0x48ce44]
or eax, 0x2fc2d69a
mov dword [0x48ce44], eax
jmp 0x43bf32
mov eax, 0x6f980408
mov cx, word [0x49f928]
movsx edx, cx
shl edx, 0xa
or edx, 0x2f8d96c4
cmp eax, edx
jle 0x43bf2d
jmp 0x43bf2d
jmp 0x43bf32
jmp 0x43bf37
mov eax, dword [esp + 0x10]
mov dword [eax], 0
mov ecx, dword [0x480da8]
or ecx, 0x9fd20ac7
mov dword [0x480da8], ecx
mov ecx, dword [esp + 0x18]
mov dword [eax + 4], ecx
mov ecx, dword [0x48e0a0]
mov edx, ecx
inc edx
mov dword [0x48e0a0], edx
xor ecx, 0x3f6ef71
mov edx, dword [0x496770]
add edx, ecx
mov dword [0x496770], edx
mov dword [eax + 0x100c], 0
mov si, word [0x49f024]
mov cx, si
or ecx, 0xe39f
mov si, cx
mov word [0x49f024], si
mov ecx, dword [eax + 0x201c]
mov edx, dword [esp + 0x18]
mov edi, esp
mov dword [edi], edx
call ecx
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0x1010], eax
mov eax, dword [0x4804e8]
shr eax, 2
or eax, 0xa7
mov si, word [0x49b4ce]
mov dx, si
xor edx, eax
mov si, dx
mov word [0x49b4ce], si
mov dword [esp + 0x2c], 1
mov eax, dword [esp + 0x2c]
add esp, 0x30
pop esi
pop edi
pop ebx
pop ebp
ret 8