Function at 0x428710
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x210
mov eax, dword [0x4951c0]
xor eax, esp
mov dword [esp + 0x208], eax
push ebx
push esi
push edi
jmp 0x428730
mov edx, dword [0x52db00]
mov ecx, dword [0x4ec0a0]
lea esp, [esp]
mov al, byte [ecx + edx]
cmp al, 0x20
je 0x42874b
cmp al, 9
jne 0x42874e
inc ecx
jmp 0x428740
movzx eax, byte [ecx + edx]
add eax, 0xffffffde
mov dword [0x4ec0a0], ecx
cmp eax, 0x17
ja case.0x428767.35
movzx eax, byte [eax + 0x4289ec]
jmp dword [eax*4 + 0x4289e0]
lea edi, [esp + 0x10]
call fcn.0045a660
mov edi, dword [0x54399c]
mov bl, byte [esp + 0x10]
xor esi, esi
test edi, edi
jle 0x4287de
jmp 0x428790
mov eax, dword [esi*4 + 0x649b30]
mov cl, byte [eax]
cmp bl, cl
je 0x4287a7
movsx eax, cl
movsx ecx, bl
sub eax, ecx
jmp 0x4287d5
lea ecx, [esp + 0x10]
jmp 0x4287b0
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4287d0
test dl, dl
je 0x4287cc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4287d0
add eax, 2
add ecx, 2
test dl, dl
jne 0x4287b0
xor eax, eax
jmp 0x4287d5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je case.0x428767.34
inc esi
cmp esi, edi
jl 0x428790
mov edi, dword [0x4ab6bc]
xor esi, esi
test edi, edi
jle 0x4288c2
mov edi, edi
mov eax, dword [esi*4 + 0x592638]
mov cl, byte [eax]
cmp bl, cl
je 0x428886
movsx eax, cl
movsx ecx, bl
sub eax, ecx
jmp 0x4288b5
lea edx, [esp + 0x10]
push edx
call fcn.00424210
add esp, 4
cmp byte [0x49b483], 0
jne 0x428842
mov ecx, dword [0x54a8cc]
lea eax, [esp + 0x10]
push eax
push 0x4857bc
push ecx
call fcn.0040a9c6
add esp, 0xc
jmp 0x4288d4
lea edx, [esp + 0x10]
push edx
push 0x4857c0
push 0x54aae8
call fcn.004081b3
mov al, byte [0x54aae8]
add esp, 0xc
mov esi, 0x54aae8
mov ecx, dword [0x54a8cc]
movsx edx, al
push ecx
xor edx, 0x84
push edx
call fcn.0040afdc
mov al, byte [esi + 1]
inc esi
add esp, 8
test al, al
jne 0x428863
jmp 0x4288d4
lea ecx, [esp + 0x10]
lea ebx, [ebx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4288b0
test dl, dl
je 0x4288ac
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4288b0
add eax, 2
add ecx, 2
test dl, dl
jne 0x428890
xor eax, eax
jmp 0x4288b5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je case.0x428767.37
inc esi
cmp esi, edi
jl 0x4287f0
push str.csvwrite
push 0x4857e8
call fcn.00458fe0
add esp, 8
mov eax, dword [0x52db00]
mov ecx, dword [0x4ec0a0]
cmp byte [ecx + eax], 0x2c
jne 0x4289c6
call fcn.00401d40
cmp byte [0x49b483], 0
jne 0x42897b
mov edx, dword [0x54a8cc]
push 0x4857f0
push edx
call fcn.0040a9c6
add esp, 8
jmp 0x428730
call fcn.004240f0
cmp byte [0x49b483], 0
push eax
jne 0x428939
mov edx, dword [0x54a8cc]
push 0x4857b4
push edx
call fcn.0040a9c6
add esp, 0xc
jmp 0x4288d4
push 0x4857b8
push 0x54aae8
call fcn.004081b3
mov al, byte [0x54aae8]
add esp, 0xc
mov esi, 0x54aae8
mov ecx, dword [0x54a8cc]
movsx edx, al
push ecx
xor edx, 0x84
push edx
call fcn.0040afdc
mov al, byte [esi + 1]
inc esi
add esp, 8
test al, al
jne 0x428955
jmp 0x4288d4
push 0x4857f4
push 0x54aae8
call fcn.004081b3
mov al, byte [0x54aae8]
add esp, 8
mov esi, 0x54aae8
jmp 0x4289a0
mov ecx, dword [0x54a8cc]
movsx edx, al
push ecx
xor edx, 0x84
push edx
call fcn.0040afdc
mov al, byte [esi + 1]
inc esi
add esp, 8
test al, al
jne 0x4289a0
jmp 0x428730
mov ecx, dword [esp + 0x214]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00407f40
add esp, 0x210
ret