Function at 0x43ff30
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x40
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
mov edi, 0xdf0216d
mov dword [esp + 0x38], eax
mov dword [esp + 0x34], ecx
mov dword [esp + 0x30], edx
mov dword [esp + 0x2c], esi
mov eax, dword [0x499200]
mov ecx, eax
inc ecx
mov dword [0x499200], ecx
add eax, 0xae7e9b56
or eax, 0xadaf3788
cmp edi, eax
jle 0x43ff8c
mov eax, dword [0x499af8]
add eax, 0x92fadae6
mov dword [0x499af8], eax
mov dword [esp + 0x28], 0
mov dword [esp + 0x24], 0
mov eax, dword [0x4994d4]
or eax, 0x6c01008
cmp eax, 0xcbf68ec7
jg 0x440006
mov eax, dword [0x4965d4]
cmp eax, 0x45850041
jge 0x440001
mov eax, 0x400280d
mov cx, word [0x49d5a0]
movsx edx, cx
mov cx, word [0x49b564]
mov si, cx
dec esi
mov di, si
mov word [0x49b564], di
movsx esi, cx
and edx, esi
cmp eax, edx
jl 0x43fff7
jmp 0x43fffc
jmp 0x43fffc
jmp 0x440001
jmp 0x440006
mov eax, 0xaad1a783
mov ecx, dword [0x495828]
mov edx, ecx
inc edx
mov dword [0x495828], edx
add ecx, 0xb355ef0
mov edx, dword [0x499084]
xor ecx, edx
cmp eax, ecx
jge 0x440055
mov ax, word [0x49bc7c]
mov cx, ax
dec ecx
mov dx, cx
mov word [0x49bc7c], dx
movsx ecx, ax
mov esi, dword [0x49b040]
or esi, ecx
mov dword [0x49b040], esi
jmp 0x44005a
cmp dword [esp + 0x2c], 0
jle 0x44037c
mov eax, dword [0x495ce0]
mov ecx, eax
dec ecx
mov dword [0x495ce0], ecx
imul eax, eax, 0x221794e1
and eax, 0xb710
mov dx, word [0x49bb56]
mov cx, dx
add ecx, eax
mov dx, cx
mov word [0x49bb56], dx
mov eax, dword [0x498d84]
add eax, 0x88b28509
mov dword [0x498d84], eax
mov dx, word [0x49b89e]
mov ax, dx
inc eax
mov dx, ax
mov word [0x49b89e], dx
movsx eax, dx
cmp eax, 0x40104248
jge 0x4400db
mov eax, dword [0x49a23c]
imul eax, eax, 0x7d14a55e
mov dword [0x49a23c], eax
jmp 0x4400ea
mov eax, dword [0x497010]
and eax, 0x498085f4
mov dword [0x497010], eax
mov eax, 0xb3060c2b
mov ecx, dword [0x4974cc]
add ecx, 0xabba2ef7
and ecx, 0x57185213
cmp eax, ecx
jg 0x440138
mov eax, dword [0x49688c]
add eax, eax
mov ecx, 0x81eeed00
sub ecx, eax
and ecx, 0x848d
mov dx, word [0x49c44a]
mov ax, dx
or eax, ecx
mov dx, ax
mov word [0x49c44a], dx
jmp 0x440147
mov eax, dword [0x49a6f4]
xor eax, 0xb8777c63
mov dword [0x49a6f4], eax
mov eax, 0x5e76f166
mov ecx, dword [esp + 0x30]
mov edx, ecx
add edx, 4
mov dword [esp + 0x30], edx
mov ecx, dword [ecx]
mov edx, dword [esp + 0x38]
mov dword [esp + 0xc], eax
mov eax, ecx
mul edx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x18], eax
mov eax, dword [0x498c14]
or eax, 0xc4c7882b
and eax, 0xcfd79cbb
mov si, word [0x49b468]
movsx ecx, si
sar ecx, 0xa
mov edx, dword [esp + 0xc]
sub edx, ecx
cmp eax, edx
jl 0x4401a3
mov dword [0x4975dc], 0x2f9bfea8
mov eax, 0x3519f387
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x14], ecx
mov dx, word [0x49ce8a]
mov cx, dx
dec ecx
mov si, cx
mov word [0x49ce8a], si
movsx ecx, dx
cmp eax, ecx
jne 0x4401f4
mov ax, word [0x49c4f0]
mov cx, ax
dec ecx
mov ax, cx
mov word [0x49c4f0], ax
movsx ecx, ax
mov edx, dword [0x494ee4]
add edx, ecx
mov dword [0x494ee4], edx
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x10], eax
mov cx, word [0x49c94e]
mov ax, cx
dec eax
mov dx, ax
mov word [0x49c94e], dx
movsx eax, cx
and eax, 0x722f5ec0
mov esi, dword [0x498008]
or esi, eax
mov dword [0x498008], esi
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x14]
add esi, eax
mov dword [esp + 0x14], esi
mov eax, dword [0x498db0]
mov dword [0x49ae78], eax
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 0x28]
sub eax, esi
mov esi, dword [esp + 0x10]
adc esi, 0
mov dword [esp + 0x10], esi
mov esi, dword [0x4954f4]
imul esi, esi, 0x416363e
cmp esi, 0xe203a84
mov dword [esp + 8], eax
jne 0x44027f
mov eax, dword [0x497b3c]
and eax, 0xa5429e0e
mov dword [0x497b3c], eax
mov eax, 0x71d38382
mov ecx, dword [esp + 0x34]
mov ecx, dword [ecx]
mov edx, dword [esp + 0x14]
add edx, ecx
mov dword [esp + 0x14], edx
mov si, word [0x49d32e]
movsx ecx, si
sub eax, ecx
or eax, 0x8ea3fb6d
cmp eax, 0xb3194395
jl 0x4402bf
mov eax, dword [0x495798]
and eax, 0xbd605938
mov dword [0x495798], eax
mov eax, 0xb1126616
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x34]
mov edx, dword [edx]
sub ecx, edx
mov edx, dword [esp + 0x10]
adc edx, 0
mov dword [esp + 0x10], edx
mov si, word [0x49ccda]
movsx edx, si
add edx, 0x9aeba776
and edx, 0x5adc5f7e
mov dword [0x498568], edx
mov edx, dword [esp + 0x10]
mov dword [esp + 0x28], edx
mov edx, dword [0x496090]
add edx, 0x1f57d6af
mov dword [0x496090], edx
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x34]
mov ebx, edi
add ebx, 4
mov dword [esp + 0x34], ebx
mov dword [edi], edx
mov edx, dword [0x499ad0]
cmp eax, edx
mov dword [esp + 4], ecx
jg 0x440345
mov dword [0x4984e8], 0x40056060
jmp 0x44035c
mov ax, word [0x49b9d6]
movsx ecx, ax
not ecx
and ecx, 0xcfc3ea1a
mov dword [0x496214], ecx
mov eax, dword [0x499a28]
imul eax, eax, 0x30fff928
mov dword [0x499a28], eax
mov eax, dword [esp + 0x2c]
add eax, 0xffffffff
mov dword [esp + 0x2c], eax
jmp 0x44005a
mov eax, dword [0x49650c]
xor eax, 0xac5d28c1
mov dword [0x49650c], eax
mov eax, dword [esp + 0x24]
inc eax
mov dword [esp + 0x24], eax
mov eax, dword [0x4957e4]
xor eax, 0x92780e82
mov dword [0x4957e4], eax
mov eax, dword [0x498de8]
add eax, 0x1cc80ddd
mov dword [0x498de8], eax
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x34]
mov edx, dword [ecx]
add edx, eax
mov dword [ecx], edx
mov si, word [0x49ccc4]
mov ax, si
xor eax, 0x57a6
mov si, ax
mov word [0x49ccc4], si
mov eax, dword [esp + 0x34]
mov eax, dword [eax]
mov ecx, dword [esp + 0x28]
sub eax, ecx
sbb ecx, ecx
and ecx, 1
mov dword [esp + 0x28], ecx
mov ecx, dword [0x49af3c]
imul ecx, ecx, 0x7a1f79fc
mov dword [0x49af3c], ecx
mov ecx, dword [esp + 0x34]
add ecx, 4
mov dword [esp + 0x34], ecx
mov ecx, dword [0x4973b4]
add ecx, 0xbf7cea4e
mov dword [0x4973b4], ecx
mov dword [esp], eax
cmp dword [esp + 0x28], 0
jne 0x4403a3
mov eax, dword [0x49a414]
not eax
mov cx, word [0x49d040]
mov dx, cx
or eax, edx
or eax, 0x2b88
mov cx, word [0x49d5ac]
mov dx, cx
add edx, eax
mov cx, dx
mov word [0x49d5ac], cx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret