Function at 0x1c38a0
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x64
mov eax, dword [0x1d5eb0]
mov ecx, dword [0x1d5eb4]
mov dx, word [0x1d5eb8]
mov dword [esp], eax
cmp byte [esp], 0
mov al, byte [0x1d5eba]
mov byte [esp + 0xa], al
mov dword [esp + 4], ecx
mov word [esp + 8], dx
lea eax, [esp]
je 0x1c38e0
mov ecx, eax
xor byte [eax], 0xf
inc ecx
cmp byte [ecx], 0
mov eax, ecx
jne 0x1c38d5
push ebx
mov ebx, dword [0x1d4060]
push edi
lea ecx, [esp + 8]
push ecx
call ebx
mov edi, eax
test edi, edi
je 0x1c4224
mov edx, dword [0x1d5ebc]
mov al, byte [0x1d5ec0]
mov byte [esp + 0xc], al
mov dword [esp + 8], edx
lea eax, [esp + 8]
test dl, dl
je 0x1c3921
mov ecx, eax
xor byte [eax], 0xf
inc ecx
cmp byte [ecx], 0
mov eax, ecx
jne 0x1c3916
push ebp
mov ebp, dword [fcn.001d4058]
push esi
lea ecx, [esp + 0x10]
push ecx
push edi
call ebp
mov cl, byte [0x1d5ec8]
xor edx, edx
test eax, eax
setne dl
mov dword [0x1d9f58], eax
mov eax, dword [0x1d5ec4]
mov dword [esp + 0x10], eax
cmp byte [esp + 0x10], 0
mov byte [esp + 0x14], cl
lea eax, [esp + 0x10]
mov esi, edx
je 0x1c396b
mov ecx, eax
nop
xor byte [eax], 0xf
inc ecx
cmp byte [ecx], 0
mov eax, ecx
jne 0x1c3960
lea edx, [esp + 0x10]
push edx
push edi
call ebp
mov dword [0x1d9f50], eax
test esi, esi
je 0x1c3987
test eax, eax
je 0x1c3987
mov esi, 1
jmp 0x1c3989
xor esi, esi
mov eax, dword [0x1d5ecc]
mov cx, word [0x1d5ed0]
mov dword [esp + 0x10], eax
cmp byte [esp + 0x10], 0
mov word [esp + 0x14], cx
lea eax, [esp + 0x10]
je 0x1c39bb
mov ecx, eax
jmp 0x1c39b0
xor byte [eax], 0xf
inc ecx
cmp byte [ecx], 0
mov eax, ecx
jne 0x1c39b0
lea edx, [esp + 0x10]
push edx
push edi
call ebp
mov dword [0x1da14c], eax
test esi, esi
je 0x1c39d7
test eax, eax
je 0x1c39d7
mov esi, 1
jmp 0x1c39d9
xor esi, esi
mov eax, dword [0x1d5ed4]
mov ecx, dword [0x1d5ed8]
mov dword [esp + 0x10], eax
cmp byte [esp + 0x10], 0
mov dword [esp + 0x14], ecx
lea eax, [esp + 0x10]
je 0x1c3a0b
mov ecx, eax
lea esp, [esp]
xor byte [eax], 0xf
inc ecx
cmp byte [ecx], 0
mov eax, ecx
jne 0x1c3a00
lea edx, [esp + 0x10]
push edx
push edi
call ebp
mov dword [0x1d9f64], eax
test esi, esi
je 0x1c3a27
test eax, eax
je 0x1c3a27
mov esi, 1
jmp 0x1c3a29
xor esi, esi
mov eax, dword [0x1d5edc]
mov cx, word [0x1d5ee0]
mov dl, byte [0x1d5ee2]
mov dword [esp + 0x10], eax
cmp byte [esp + 0x10], 0
mov word [esp + 0x14], cx
mov byte [esp + 0x16], dl
lea eax, [esp + 0x10]
je 0x1c3a60
mov ecx, eax
xor byte [eax], 0xf
inc ecx
cmp byte [ecx], 0
mov eax, ecx
jne 0x1c3a55
lea eax, [esp + 0x10]
push eax
push edi
call ebp
mov dword [0x1da29c], eax
test esi, esi
je 0x1c3a7c
test eax, eax
je 0x1c3a7c
mov esi, 1
jmp 0x1c3a7e
xor esi, esi
mov ecx, dword [0x1d5ee4]
mov eax, dword [0x1d5eec]
mov edx, dword [0x1d5ee8]
mov dword [esp + 0x10], ecx
cmp byte [esp + 0x10], 0
mov cx, word [0x1d5ef0]
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], edx
mov word [esp + 0x1c], cx
lea eax, [esp + 0x10]
je 0x1c3abf
mov ecx, eax
xor byte [eax], 0xf
inc ecx
cmp byte [ecx], 0
mov eax, ecx
jne 0x1c3ab4
lea edx, [esp + 0x10]
push edx
push edi
call ebp
mov dword [0x1d9f4c], eax
test esi, esi
je 0x1c3adb
test eax, eax
je 0x1c3adb
mov esi, 1
jmp 0x1c3add
xor esi, esi
mov eax, dword [0x1d5ee4]
mov ecx, dword [0x1d5ee8]
mov edx, dword [0x1d5eec]
mov dword [esp + 0x10], eax
cmp byte [esp + 0x10], 0
mov ax, word [0x1d5ef0]
mov word [esp + 0x1c], ax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], edx
lea eax, [esp + 0x10]
je 0x1c3b1d
mov ecx, eax
xor byte [eax], 0xf
inc ecx
cmp byte [ecx], 0
mov eax, ecx
jne 0x1c3b12
lea ecx, [esp + 0x10]
push ecx
push edi
call ebp
mov dword [0x1d9f44], eax
test esi, esi
je 0x1c3b39
test eax, eax
je 0x1c3b39
mov esi, 1
jmp 0x1c3b3b
xor esi, esi
mov edx, dword [0x1d5ef4]
mov eax, dword [0x1d5ef8]
mov cx, word [0x1d5efc]
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], edx
mov word [esp + 0x18], cx
lea eax, [esp + 0x10]
test dl, dl
je 0x1c3b6f
mov ecx, eax
xor byte [eax], 0xf
inc ecx
cmp byte [ecx], 0
mov eax, ecx
jne 0x1c3b64
lea edx, [esp + 0x10]
push edx
push edi
call ebp
mov dword [0x1d9f70], eax
test esi, esi
je 0x1c3b8b
test eax, eax
je 0x1c3b8b
mov esi, 1
jmp 0x1c3b8d
xor esi, esi
mov eax, dword [0x1d5f00]
mov ecx, dword [0x1d5f04]
mov edx, dword [0x1d5f08]
mov dword [esp + 0x10], eax
cmp byte [esp + 0x10], 0
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], edx
lea eax, [esp + 0x10]
je 0x1c3bc2
mov ecx, eax
xor byte [eax], 0xf
inc ecx
cmp byte [ecx], 0
mov eax, ecx
jne 0x1c3bb7
lea eax, [esp + 0x10]
push eax
push edi
call ebp
mov dword [0x1da18c], eax
test esi, esi
je 0x1c3bde
test eax, eax
je 0x1c3bde
mov esi, 1
jmp 0x1c3be0
xor esi, esi
mov ecx, dword [0x1d5c8c]
mov eax, dword [0x1d5c94]
mov edx, dword [0x1d5c90]
mov dword [esp + 0x10], ecx
cmp byte [esp + 0x10], 0
mov cl, byte [0x1d5c98]
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], edx
mov byte [esp + 0x1c], cl
lea eax, [esp + 0x10]
je 0x1c3c1f
mov ecx, eax
xor byte [eax], 0xf
inc ecx
cmp byte [ecx], 0
mov eax, ecx
jne 0x1c3c14
lea edx, [esp + 0x10]
push edx
call ebx
mov ecx, dword [0x1d5cf4]
mov edx, dword [0x1d5cf8]
mov edi, eax
mov eax, dword [0x1d5cf0]
mov dword [esp + 0x10], eax
cmp byte [esp + 0x10], 0
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], edx
lea eax, [esp + 0x10]
je 0x1c3c5d
mov ecx, eax
xor byte [eax], 0xf
inc ecx
cmp byte [ecx], 0
mov eax, ecx
jne 0x1c3c52
lea eax, [esp + 0x10]
push eax
push edi
call ebp
mov dword [0x1da024], eax
test esi, esi
je 0x1c3c79
test eax, eax
je 0x1c3c79
mov esi, 1
jmp 0x1c3c7b
xor esi, esi
mov ecx, dword [0x1d5f0c]
mov edx, dword [0x1d5f10]
mov eax, dword [0x1d5f14]
mov dword [esp + 0x10], ecx
cmp byte [esp + 0x10], 0
mov cx, word [0x1d5f18]
mov dword [esp + 0x14], edx
mov dl, byte [0x1d5f1a]
mov dword [esp + 0x18], eax
mov word [esp + 0x1c], cx
mov byte [esp + 0x1e], dl
lea eax, [esp + 0x10]
je 0x1c3ccb
mov ecx, eax
jmp 0x1c3cc0
xor byte [eax], 0xf
inc ecx
cmp byte [ecx], 0
mov eax, ecx
jne 0x1c3cc0
lea eax, [esp + 0x10]
push eax
push edi
call ebp
mov dword [0x1d9f48], eax
test esi, esi
je 0x1c3ce7
test eax, eax
je 0x1c3ce7
mov esi, 1
jmp 0x1c3ce9
xor esi, esi
mov ecx, dword [0x1d5f1c]
mov ax, word [0x1d5f24]
mov edx, dword [0x1d5f20]
mov word [esp + 0x18], ax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
lea eax, [esp + 0x10]
test cl, cl
je 0x1c3d1d
mov ecx, eax
xor byte [eax], 0xf
inc ecx
cmp byte [ecx], 0
mov eax, ecx
jne 0x1c3d12
lea ecx, [esp + 0x10]
push ecx
push edi
call ebp
mov dword [0x1da2ac], eax
test esi, esi
je 0x1c3d39
test eax, eax
je 0x1c3d39
mov esi, 1
jmp 0x1c3d3b
xor esi, esi
mov edx, dword [0x1d5f28]
mov eax, dword [0x1d5f2c]
mov ecx, dword [0x1d5f30]
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x18], ecx
lea eax, [esp + 0x10]
test dl, dl
je 0x1c3d6d
mov ecx, eax
xor byte [eax], 0xf
inc ecx
cmp byte [ecx], 0
mov eax, ecx
jne 0x1c3d62
lea edx, [esp + 0x10]
push edx
push edi
call ebp
mov dword [0x1da294], eax
test esi, esi
je 0x1c3d89
test eax, eax
je 0x1c3d89
mov esi, 1
jmp 0x1c3d8b
xor esi, esi
mov eax, dword [0x1d5f34]
mov ecx, dword [0x1d5f38]
mov edx, dword [0x1d5f3c]
mov dword [esp + 0x10], eax
cmp byte [esp + 0x10], 0
mov eax, dword [0x1d5f40]
mov dword [esp + 0x14], ecx
mov cx, word [0x1d5f44]
mov dword [esp + 0x18], edx
mov dl, byte [0x1d5f46]
mov dword [esp + 0x1c], eax
mov word [esp + 0x20], cx
mov byte [esp + 0x22], dl
lea eax, [esp + 0x10]
je 0x1c3ddf
mov ecx, eax
xor byte [eax], 0xf
inc ecx
cmp byte [ecx], 0
mov eax, ecx
jne 0x1c3dd4
lea eax, [esp + 0x10]
push eax
push edi
call ebp
mov dword [0x1da134], eax
test esi, esi
je 0x1c3dfb
test eax, eax
je 0x1c3dfb
mov esi, 1
jmp 0x1c3dfd
xor esi, esi
mov ecx, dword [0x1d5f48]
mov eax, dword [0x1d5f50]
mov edx, dword [0x1d5f4c]
mov dword [esp + 0x10], ecx
cmp byte [esp + 0x10], 0
mov cl, byte [0x1d5f54]
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], edx
mov byte [esp + 0x1c], cl
lea eax, [esp + 0x10]
je 0x1c3e3c
mov ecx, eax
xor byte [eax], 0xf
inc ecx
cmp byte [ecx], 0
mov eax, ecx
jne 0x1c3e31
lea edx, [esp + 0x10]
push edx
push edi
call ebp
mov dword [0x1d9ff4], eax
test esi, esi
je 0x1c3e58
test eax, eax
je 0x1c3e58
mov esi, 1
jmp 0x1c3e5a
xor esi, esi
mov eax, dword [0x1d5ce0]
mov ecx, dword [0x1d5ce4]
mov edx, dword [0x1d5ce8]
mov dword [esp + 0x10], eax
cmp byte [esp + 0x10], 0
mov al, byte [0x1d5cec]
mov byte [esp + 0x1c], al
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], edx
lea eax, [esp + 0x10]
je 0x1c3e9b
mov ecx, eax
lea ecx, [ecx]
xor byte [eax], 0xf
inc ecx
cmp byte [ecx], 0
mov eax, ecx
jne 0x1c3e90
lea ecx, [esp + 0x10]
push ecx
push edi
call ebp
mov dword [0x1da148], eax
test esi, esi
je 0x1c3eb7
test eax, eax
je 0x1c3eb7
mov esi, 1
jmp 0x1c3eb9
xor esi, esi
mov edx, dword [0x1d5cd4]
mov eax, dword [0x1d5cd8]
mov ecx, dword [0x1d5cdc]
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x18], ecx
lea eax, [esp + 0x10]
test dl, dl
je 0x1c3eeb
mov ecx, eax
xor byte [eax], 0xf
inc ecx
cmp byte [ecx], 0
mov eax, ecx
jne 0x1c3ee0
lea edx, [esp + 0x10]
push edx
push edi
call ebp
mov dword [0x1d9f68], eax
test esi, esi
je 0x1c3f07
test eax, eax
je 0x1c3f07
mov esi, 1
jmp 0x1c3f09
xor esi, esi
mov eax, dword [0x1d5cfc]
mov ecx, dword [0x1d5d00]
mov dl, byte [0x1d5d04]
mov dword [esp + 0x10], eax
cmp byte [esp + 0x10], 0
mov dword [esp + 0x14], ecx
mov byte [esp + 0x18], dl
lea eax, [esp + 0x10]
je 0x1c3f3e
mov ecx, eax
xor byte [eax], 0xf
inc ecx
cmp byte [ecx], 0
mov eax, ecx
jne 0x1c3f33
lea eax, [esp + 0x10]
push eax
push edi
call ebp
mov dword [0x1da020], eax
test esi, esi
je 0x1c3f5a
test eax, eax
je 0x1c3f5a
mov esi, 1
jmp 0x1c3f5c
xor esi, esi
mov ecx, dword [0x1d5d84]
mov edx, dword [0x1d5d88]
mov eax, dword [0x1d5d8c]
mov dword [esp + 0x10], ecx
cmp byte [esp + 0x10], 0
mov ecx, dword [0x1d5d90]
mov dword [esp + 0x14], edx
mov dl, byte [0x1d5d94]
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], ecx
mov byte [esp + 0x20], dl
lea eax, [esp + 0x10]
je 0x1c3fab
mov ecx, eax
lea ebx, [ebx]
xor byte [eax], 0xf
inc ecx
cmp byte [ecx], 0
mov eax, ecx
jne 0x1c3fa0
lea eax, [esp + 0x10]
push eax
push edi
call ebp
mov dword [0x1d9fe8], eax
test esi, esi
je 0x1c3fc7
test eax, eax
je 0x1c3fc7
mov esi, 1
jmp 0x1c3fc9
xor esi, esi
mov ecx, dword [0x1d5f58]
mov eax, dword [0x1d5f60]
mov edx, dword [0x1d5f5c]
mov dword [esp + 0x10], ecx
cmp byte [esp + 0x10], 0
mov cl, byte [0x1d5f64]
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], edx
mov byte [esp + 0x1c], cl
lea eax, [esp + 0x10]
je 0x1c400b
mov ecx, eax
lea ecx, [ecx]
xor byte [eax], 0xf
inc ecx
cmp byte [ecx], 0
mov eax, ecx
jne 0x1c4000
lea edx, [esp + 0x10]
push edx
push edi
call ebp
mov dword [0x1da160], eax
test esi, esi
je 0x1c4027
test eax, eax
je 0x1c4027
mov esi, 1
jmp 0x1c4029
xor esi, esi
mov eax, dword [0x1d5f68]
mov ecx, dword [0x1d5f6c]
mov edx, dword [0x1d5f70]
mov dword [esp + 0x10], eax
cmp byte [esp + 0x10], 0
mov eax, dword [0x1d5f74]
mov dword [esp + 0x14], ecx
mov cl, byte [0x1d5f78]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], edx
mov byte [esp + 0x20], cl
lea eax, [esp + 0x10]
je 0x1c4071
mov ecx, eax
xor byte [eax], 0xf
inc ecx
cmp byte [ecx], 0
mov eax, ecx
jne 0x1c4066
lea edx, [esp + 0x10]
push edx
push edi
call ebp
mov dword [0x1d9fec], eax
test esi, esi
je 0x1c408d
test eax, eax
je 0x1c408d
mov esi, 1
jmp 0x1c408f
xor esi, esi
mov eax, dword [0x1d5f7c]
mov ecx, dword [0x1d5f80]
mov edx, dword [0x1d5f84]
mov dword [esp + 0x10], eax
cmp byte [esp + 0x10], 0
mov eax, dword [0x1d5f88]
mov dword [esp + 0x14], ecx
mov cx, word [0x1d5f8c]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], edx
mov word [esp + 0x20], cx
lea eax, [esp + 0x10]
je 0x1c40db
mov ecx, eax
mov edi, edi
xor byte [eax], 0xf
inc ecx
cmp byte [ecx], 0
mov eax, ecx
jne 0x1c40d0
lea edx, [esp + 0x10]
push edx
push edi
call ebp
mov dword [0x1da164], eax
test esi, esi
je 0x1c40f7
test eax, eax
je 0x1c40f7
mov esi, 1
jmp 0x1c40f9
xor esi, esi
mov eax, dword [0x1d5f90]
mov ecx, dword [0x1d5f94]
mov edx, dword [0x1d5f98]
mov dword [esp + 0x10], eax
cmp byte [esp + 0x10], 0
mov al, byte [0x1d5f9c]
mov byte [esp + 0x1c], al
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], edx
lea eax, [esp + 0x10]
je 0x1c413b
mov ecx, eax
lea esp, [esp]
xor byte [eax], 0xf
inc ecx
cmp byte [ecx], 0
mov eax, ecx
jne 0x1c4130
lea ecx, [esp + 0x10]
push ecx
push edi
call ebp
mov dword [0x1da128], eax
test esi, esi
je 0x1c4157
test eax, eax
je 0x1c4157
mov esi, 1
jmp 0x1c4159
xor esi, esi
mov edx, dword [0x1d5fa0]
mov eax, dword [0x1d5fa4]
mov ecx, dword [0x1d5fa8]
mov dword [esp + 0x10], edx
cmp byte [esp + 0x10], 0
mov dx, word [0x1d5fac]
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], ecx
mov word [esp + 0x1c], dx
lea eax, [esp + 0x10]
je 0x1c419b
mov ecx, eax
nop
xor byte [eax], 0xf
inc ecx
cmp byte [ecx], 0
mov eax, ecx
jne 0x1c4190
lea eax, [esp + 0x10]
push eax
push edi
call ebp
mov dword [0x1da01c], eax
test esi, esi
je 0x1c41b7
test eax, eax
je 0x1c41b7
mov esi, 1
jmp 0x1c41b9
xor esi, esi
mov ecx, dword [0x1d5fb0]
mov edx, dword [0x1d5fb4]
mov eax, dword [0x1d5fb8]
mov dword [esp + 0x10], ecx
cmp byte [esp + 0x10], 0
mov ecx, dword [0x1d5fbc]
mov dword [esp + 0x14], edx
mov edx, dword [0x1d5fc0]
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], edx
lea eax, [esp + 0x10]
je 0x1c4202
mov ecx, eax
xor byte [eax], 0xf
inc ecx
cmp byte [ecx], 0
mov eax, ecx
jne 0x1c41f7
lea eax, [esp + 0x10]
push eax
push edi
call ebp
test esi, esi
pop esi
mov dword [0x1da150], eax
pop ebp
je 0x1c4224
test eax, eax
je 0x1c4224
pop edi
mov eax, 1
pop ebx
add esp, 0x64
ret
pop edi
xor eax, eax
pop ebx
add esp, 0x64
ret