Function at 0x41d3f0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0xac
mov eax, dword [esp + 0xc4]
mov edx, dword [eax + 0x2c]
mov eax, dword [eax + 0x28]
mov dword [esp + 0x28], eax
mov edi, eax
mov eax, dword [esp + 0xc8]
mov ebp, edx
mov dword [esp + 0x2c], edx
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0
mov eax, dword [esp + 0xc0]
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], eax
call fcn.0041f020
cmp eax, 0xffffffff
mov dword [esp + 0x34], eax
je 0x41d5a6
mov dword [esp + 0x10], 0x40
mov dword [esp + 0xc], 0x40000
lea ebx, [esp + 0x48]
mov dword [esp + 4], edi
mov dword [esp + 8], ebp
mov dword [esp], eax
call fcn.00433d20
cmp dword [0x452f10], 0x1d
mov dword [esp + 0x30], eax
mov dword [esp], ebx
jle 0x41d5b1
call fcn.004403e0
cmp dword [esp + 0x2c], 0
jl 0x41d6bb
jle 0x41d6b0
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x30]
add eax, 0xffffffc0
adc edx, 0xffffffff
shrd eax, edx, 6
shr edx, 6
mov dword [esp + 0x38], eax
add eax, 1
mov dword [esp + 0x3c], edx
adc edx, 0
xor esi, esi
xor edi, edi
shld edx, eax, 6
shl eax, 6
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], edx
lea esi, [esi]
mov dword [esp + 4], esi
mov dword [esp + 8], edi
mov dword [esp + 0xc], 0x40
mov dword [esp], ebp
call fcn.00433da0
mov dword [esp + 8], 0x40
mov dword [esp + 4], eax
mov dword [esp], ebx
call fcn.00440410
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
add esi, 0x40
adc edi, 0
xor edx, edi
xor eax, esi
or edx, eax
jne 0x41d4f0
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
add eax, 1
adc edx, 0
shld edx, eax, 6
shl eax, 6
mov ecx, eax
mov ebp, dword [esp + 0x28]
sub ebp, ecx
test ebp, ebp
jle 0x41d57b
mov dword [esp + 4], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0xc], ebp
mov dword [esp + 8], edx
mov dword [esp], eax
call fcn.00433da0
mov dword [esp + 8], ebp
mov dword [esp + 4], eax
mov dword [esp], ebx
call fcn.00440410
mov eax, dword [esp + 0xc8]
mov dword [esp], ebx
mov dword [esp + 4], eax
call fcn.00440430
mov eax, dword [esp + 0x34]
mov dword [esp], eax
call sub.cygwin1.dll_close
mov eax, dword [esp + 0x30]
mov dword [esp], eax
call fcn.004341e0
add esp, 0xac
pop ebx
pop esi
pop edi
pop ebp
ret
call fcn.0043f960
cmp dword [esp + 0x2c], 0
jl 0x41d6db
jle 0x41d6d0
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x30]
add eax, 0xffffffc0
adc edx, 0xffffffff
shrd eax, edx, 6
shr edx, 6
mov dword [esp + 0x38], eax
add eax, 1
mov dword [esp + 0x3c], edx
adc edx, 0
xor esi, esi
xor edi, edi
shld edx, eax, 6
shl eax, 6
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], edx
mov dword [esp + 4], esi
mov dword [esp + 8], edi
mov dword [esp + 0xc], 0x40
mov dword [esp], ebp
call fcn.00433da0
mov dword [esp + 8], 0x40
mov dword [esp + 4], eax
mov dword [esp], ebx
call fcn.0043f990
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
add esi, 0x40
adc edi, 0
xor edx, edi
xor eax, esi
or edx, eax
jne 0x41d601
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
add eax, 1
adc edx, 0
shld edx, eax, 6
shl eax, 6
mov ecx, eax
mov ebp, dword [esp + 0x28]
sub ebp, ecx
test ebp, ebp
jle 0x41d6a4
mov dword [esp + 4], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0xc], ebp
mov dword [esp + 8], edx
mov dword [esp], eax
call fcn.00433da0
mov dword [esp + 8], ebp
mov dword [esp + 4], eax
mov dword [esp], ebx
call fcn.0043f990
mov eax, dword [esp + 0xc8]
mov dword [esp], ebx
mov dword [esp + 4], eax
call fcn.0043fa30
jmp 0x41d58e
cmp dword [0x452f10], 0x1a
jle 0x41d68c
jmp 0x41d664
cmp dword [esp + 0x28], 0x3f
ja 0x41d4af
xor ecx, ecx
xor eax, eax
xor edx, edx
jmp 0x41d549
cmp dword [esp + 0x28], 0x3f
ja 0x41d5c7
xor ecx, ecx
xor eax, eax
xor edx, edx
jmp 0x41d65a