Function at 0x40a010
Capabilities:
Encrypt data using des

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x44
mov eax, dword [0x443010]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
xor esi, esi
mov dword [ebp - 0x30], edx
xorps xmm0, xmm0
mov dword [ebp - 0x28], ecx
xor eax, eax
movlpd qword [ebp - 0xc], xmm0
push edi
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x2c], 0x15
mov dword [ebp - 0x18], eax
xor ebx, ebx
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x10], 0
mov dword [ebp - 0x24], eax
nop
movzx ecx, byte [eax]
lea edx, [ebp - 0x14]
mov eax, ecx
mov esi, 8
and ecx, 0xf
shr eax, 4
sub ecx, eax
add eax, ebx
lea edi, [ecx*8 + 0x80]
lea ecx, [eax*8 + 0x43b878]
mov al, byte [edi + ecx]
lea edx, [edx + 1]
or al, byte [ecx]
lea ecx, [ecx + 1]
or byte [edx - 1], al
sub esi, 1
jne 0x40a085
mov eax, dword [ebp - 0x24]
add ebx, 0x20
inc eax
mov dword [ebp - 0x24], eax
cmp ebx, 0x100
jl 0x40a060
movzx eax, byte [ebp - 0x14]
mov byte [ebp - 9], al
movzx eax, byte [ebp - 0x11]
mov byte [ebp - 0xc], al
movzx eax, byte [ebp - 0x12]
mov byte [ebp - 0xb], al
movzx eax, byte [ebp - 0x10]
mov byte [ebp - 5], al
movzx eax, byte [ebp - 0xd]
mov byte [ebp - 8], al
movzx eax, byte [ebp - 0xf]
mov byte [ebp - 6], al
movzx eax, byte [ebp - 0xe]
mov byte [ebp - 7], al
mov esi, dword [ebp - 8]
mov edx, esi
mov eax, dword [ebp - 0x14]
mov ecx, esi
shr eax, 8
mov byte [ebp - 0xa], al
ror edx, 1
lea eax, [esi + esi]
shr ecx, 0x1f
or ecx, eax
mov eax, edx
xor eax, 0x1800000
xor ecx, 0xfffffff7
shr eax, 0x16
and ecx, 0x3f
and eax, 0x3f
mov ebx, dword [ecx*4 + 0x43b710]
or ebx, dword [eax*4 + 0x43b610]
mov eax, edx
xor eax, 0x38
shr eax, 2
and eax, 0x3f
or ebx, dword [eax*4 + 0x43b510]
mov eax, edx
shr eax, 0x1a
xor eax, 0xfffffff1
and eax, 0x3f
or ebx, dword [eax*4 + 0x43b010]
mov eax, edx
shr eax, 0x12
xor eax, 0xffffffed
and eax, 0x3f
or ebx, dword [eax*4 + 0x43b310]
mov eax, edx
shr eax, 0xa
xor eax, 0xfffffff1
and eax, 0x3f
or ebx, dword [eax*4 + 0x43b210]
mov eax, edx
xor eax, 0x68000
shr edx, 6
shr eax, 0xe
xor edx, 0xfffffff2
and eax, 0x3f
and edx, 0x3f
or ebx, dword [eax*4 + 0x43b410]
or ebx, dword [edx*4 + 0x43b110]
xor ebx, dword [ebp - 0xc]
mov ecx, ebx
mov edx, ebx
shr ecx, 0x1f
ror edx, 1
lea eax, [ebx + ebx]
or ecx, eax
mov eax, edx
xor eax, 0x780
xor ecx, 0x13
shr eax, 6
and ecx, 0x3f
and eax, 0x3f
mov edi, dword [ecx*4 + 0x43b710]
or edi, dword [eax*4 + 0x43b110]
mov eax, edx
xor eax, 0x3c0000
shr eax, 0x12
and eax, 0x3f
or edi, dword [eax*4 + 0x43b310]
mov eax, edx
xor eax, 0x34
shr eax, 2
and eax, 0x3f
or edi, dword [eax*4 + 0x43b510]
mov eax, edx
shr eax, 0x16
xor eax, 0xffffffe4
and eax, 0x3f
or edi, dword [eax*4 + 0x43b610]
mov eax, edx
shr eax, 0xa
xor eax, 0xffffffed
and eax, 0x3f
or edi, dword [eax*4 + 0x43b210]
mov eax, edx
shr eax, 0xe
xor edx, 0x24000000
xor eax, 0xfffffff6
shr edx, 0x1a
and eax, 0x3f
or edi, dword [eax*4 + 0x43b410]
or edi, dword [edx*4 + 0x43b010]
xor edi, esi
mov ecx, edi
mov edx, edi
ror edx, 1
shr ecx, 0x1f
lea eax, [edi + edi]
or ecx, eax
mov eax, edx
xor eax, 0x7400
xor ecx, 6
shr eax, 0xa
and ecx, 0x3f
and eax, 0x3f
mov esi, dword [ecx*4 + 0x43b710]
or esi, dword [eax*4 + 0x43b210]
mov eax, edx
xor eax, 0x14000
shr eax, 0xe
and eax, 0x3f
or esi, dword [eax*4 + 0x43b410]
mov eax, edx
xor eax, 0x64
shr eax, 2
and eax, 0x3f
or esi, dword [eax*4 + 0x43b510]
mov eax, edx
shr eax, 0x16
xor eax, 0xffffffe5
and eax, 0x3f
or esi, dword [eax*4 + 0x43b610]
mov eax, edx
shr eax, 0x1a
xor eax, 0xffffffef
and eax, 0x3f
or esi, dword [eax*4 + 0x43b010]
mov eax, edx
xor eax, 0x100000
shr edx, 6
shr eax, 0x12
xor edx, 0xfffffffa
and eax, 0x3f
and edx, 0x3f
or esi, dword [eax*4 + 0x43b310]
or esi, dword [edx*4 + 0x43b110]
xor esi, ebx
mov ecx, esi
mov edx, esi
shr ecx, 0x1f
ror edx, 1
lea eax, [esi + esi]
or ecx, eax
mov eax, edx
xor ecx, 0xe
xor eax, 0x340000
and ecx, 0x3f
shr eax, 0x12
and eax, 0x3f
mov ebx, dword [ecx*4 + 0x43b710]
or ebx, dword [eax*4 + 0x43b310]
mov eax, edx
shr eax, 0x16
xor eax, 0xfffffff0
and eax, 0x3f
or ebx, dword [eax*4 + 0x43b610]
mov eax, edx
shr eax, 0xe
xor eax, 0xfffffff9
and eax, 0x3f
or ebx, dword [eax*4 + 0x43b410]
mov eax, edx
shr eax, 0xa
not eax
and eax, 0x3f
or ebx, dword [eax*4 + 0x43b210]
mov eax, edx
xor eax, 0x280
shr eax, 6
and eax, 0x3f
or ebx, dword [eax*4 + 0x43b110]
mov eax, edx
xor eax, 0x5c
xor edx, 0x8000000
shr eax, 2
and eax, 0x3f
shr edx, 0x1a
or ebx, dword [eax*4 + 0x43b510]
or ebx, dword [edx*4 + 0x43b010]
xor ebx, edi
mov ecx, ebx
mov dword [ebp - 0x20], ebx
shr ecx, 0x1f
mov edx, ebx
ror edx, 1
lea eax, [ebx + ebx]
or ecx, eax
mov eax, edx
xor eax, 0x6c
xor ecx, 0xf
shr eax, 2
and ecx, 0x3f
and eax, 0x3f
mov edi, dword [ecx*4 + 0x43b710]
or edi, dword [eax*4 + 0x43b510]
mov eax, edx
shr eax, 0x1a
xor eax, 0xffffffe3
and eax, 0x3f
or edi, dword [eax*4 + 0x43b010]
mov eax, edx
xor eax, 0x80000
shr eax, 0x12
and eax, 0x3f
or edi, dword [eax*4 + 0x43b310]
mov eax, edx
shr eax, 0xe
xor eax, 0xfffffffd
and eax, 0x3f
or edi, dword [eax*4 + 0x43b410]
mov eax, edx
xor eax, 0x2c00
shr eax, 0xa
and eax, 0x3f
or edi, dword [eax*4 + 0x43b210]
mov eax, edx
xor eax, 0x5400000
xor edx, 0x3c0
shr eax, 0x16
shr edx, 6
and eax, 0x3f
and edx, 0x3f
or edi, dword [eax*4 + 0x43b610]
or edi, dword [edx*4 + 0x43b110]
xor edi, esi
mov ecx, edi
mov edx, edi
shr ecx, 0x1f
ror edx, 1
lea eax, [edi + edi]
or ecx, eax
mov eax, edx
xor ecx, 0xffffffe3
shr eax, 0x1a
and ecx, 0x3f
xor eax, 0xffffffe5
and eax, 0x3f
mov ebx, dword [ecx*4 + 0x43b710]
or ebx, dword [eax*4 + 0x43b010]
mov eax, edx
shr eax, 0x16
xor eax, 0xfffffff0
and eax, 0x3f
or ebx, dword [eax*4 + 0x43b610]
mov eax, edx
shr eax, 0x12
xor eax, 0xffffffef
and eax, 0x3f
or ebx, dword [eax*4 + 0x43b310]
mov eax, edx
shr eax, 6
xor eax, 0xffffffef
and eax, 0x3f
or ebx, dword [eax*4 + 0x43b110]
mov eax, edx
xor eax, 0x20000
shr eax, 0xe
and eax, 0x3f
or ebx, dword [eax*4 + 0x43b410]
mov eax, edx
xor eax, 0x4c
xor edx, 0x7c00
shr eax, 2
and eax, 0x3f
shr edx, 0xa
and edx, 0x3f
or ebx, dword [eax*4 + 0x43b510]
or ebx, dword [edx*4 + 0x43b210]
xor ebx, dword [ebp - 0x20]
mov ecx, ebx
mov edx, ebx
ror edx, 1
shr ecx, 0x1f
lea eax, [ebx + ebx]
or ecx, eax
mov eax, edx
shr eax, 0x16
xor ecx, 0xffffffeb
xor eax, 0xffffffe7
and ecx, 0x3f
and eax, 0x3f
mov esi, dword [ecx*4 + 0x43b710]
or esi, dword [eax*4 + 0x43b610]
mov eax, edx
shr eax, 0xe
xor eax, 0xffffffe1
and eax, 0x3f
or esi, dword [eax*4 + 0x43b410]
mov eax, edx
shr eax, 0x12
xor eax, 0xffffffea
and eax, 0x3f
or esi, dword [eax*4 + 0x43b310]
mov eax, edx
shr eax, 0xa
xor eax, 0xffffffeb
and eax, 0x3f
or esi, dword [eax*4 + 0x43b210]
mov eax, edx
shr eax, 6
xor eax, 0xffffffec
and eax, 0x3f
or esi, dword [eax*4 + 0x43b110]
mov eax, edx
shr eax, 2
xor edx, 0x18000000
xor eax, 0xfffffff5
shr edx, 0x1a
and eax, 0x3f
or esi, dword [eax*4 + 0x43b510]
or esi, dword [edx*4 + 0x43b010]
xor esi, edi
mov ecx, esi
lea eax, [esi + esi]
shr ecx, 0x1f
mov edx, esi
or ecx, eax
ror edx, 1
mov eax, edx
xor ecx, 0x12
xor eax, 0x4c00000
and ecx, 0x3f
shr eax, 0x16
and eax, 0x3f
mov edi, dword [ecx*4 + 0x43b710]
or edi, dword [eax*4 + 0x43b610]
mov eax, edx
shr eax, 0x1a
xor eax, 0xffffffe6
and eax, 0x3f
or edi, dword [eax*4 + 0x43b010]
mov eax, edx
shr eax, 0xa
xor eax, 0xffffffe3
and eax, 0x3f
or edi, dword [eax*4 + 0x43b210]
mov eax, edx
shr eax, 0x12
xor eax, 0xfffffff5
and eax, 0x3f
or edi, dword [eax*4 + 0x43b310]
mov eax, edx
shr eax, 6
xor eax, 0xffffffef
and eax, 0x3f
or edi, dword [eax*4 + 0x43b110]
mov eax, edx
xor eax, 0x30000
shr edx, 2
shr eax, 0xe
xor edx, 0xfffffffd
and eax, 0x3f
and edx, 0x3f
or edi, dword [eax*4 + 0x43b410]
or edi, dword [edx*4 + 0x43b510]
xor edi, ebx
mov ecx, edi
mov edx, edi
ror edx, 1
shr ecx, 0x1f
lea eax, [edi + edi]
or ecx, eax
mov eax, edx
xor eax, 0x440
xor ecx, 0xfffffffb
shr eax, 6
and ecx, 0x3f
and eax, 0x3f
mov ebx, dword [ecx*4 + 0x43b710]
or ebx, dword [eax*4 + 0x43b110]
mov eax, edx
shr eax, 0x16
xor eax, 0xfffffff2
and eax, 0x3f
or ebx, dword [eax*4 + 0x43b610]
mov eax, edx
shr eax, 0x12
xor eax, 0xfffffff2
and eax, 0x3f
or ebx, dword [eax*4 + 0x43b310]
mov eax, edx
shr eax, 2
xor eax, 0xffffffe5
and eax, 0x3f
or ebx, dword [eax*4 + 0x43b510]
mov eax, edx
shr eax, 0xa
xor eax, 0xfffffff3
and eax, 0x3f
or ebx, dword [eax*4 + 0x43b210]
mov eax, edx
xor eax, 0x78000
shr eax, 0xe
and eax, 0x3f
shr edx, 0x1a
or ebx, dword [eax*4 + 0x43b410]
or ebx, dword [edx*4 + 0x43b010]
xor ebx, esi
mov ecx, ebx
mov edx, ebx
ror edx, 1
shr ecx, 0x1f
lea eax, [ebx + ebx]
or ecx, eax
mov eax, edx
shr eax, 2
xor ecx, 0xfffffffc
xor eax, 0xffffffe9
and ecx, 0x3f
and eax, 0x3f
mov esi, dword [ecx*4 + 0x43b710]
or esi, dword [eax*4 + 0x43b510]
mov eax, edx
shr eax, 0xa
xor eax, 0xfffffff1
and eax, 0x3f
or esi, dword [eax*4 + 0x43b210]
mov eax, edx
shr eax, 0xe
xor eax, 0xfffffff4
and eax, 0x3f
or esi, dword [eax*4 + 0x43b410]
mov eax, edx
shr eax, 6
xor eax, 0xfffffffd
and eax, 0x3f
or esi, dword [eax*4 + 0x43b110]
mov eax, edx
xor eax, 0x800000
shr eax, 0x16
and eax, 0x3f
or esi, dword [eax*4 + 0x43b610]
mov eax, edx
xor eax, 0x480000
xor edx, 0x7c000000
shr eax, 0x12
and eax, 0x3f
shr edx, 0x1a
or esi, dword [eax*4 + 0x43b310]
or esi, dword [edx*4 + 0x43b010]
xor esi, edi
mov ecx, esi
mov edx, esi
shr ecx, 0x1f
ror edx, 1
lea eax, [esi + esi]
or ecx, eax
mov eax, esi
xor eax, 0xa000
xor ecx, 0xfffffffc
shr eax, 0xb
and ecx, 0x3f
and eax, 0x3f
mov edi, dword [ecx*4 + 0x43b710]
or edi, dword [eax*4 + 0x43b210]
mov eax, edx
xor eax, 0x640
shr eax, 6
and eax, 0x3f
or edi, dword [eax*4 + 0x43b110]
mov eax, edx
shr eax, 0x16
xor eax, 0xffffffe8
and eax, 0x3f
or edi, dword [eax*4 + 0x43b610]
mov eax, edx
shr eax, 0x1a
xor eax, 0xfffffff5
and eax, 0x3f
or edi, dword [eax*4 + 0x43b010]
mov eax, edx
shr eax, 0x12
xor eax, 0xfffffff0
and eax, 0x3f
or edi, dword [eax*4 + 0x43b310]
mov eax, edx
shr eax, 0xe
xor eax, 0xffffffe8
shr edx, 2
and eax, 0x3f
not edx
and edx, 0x3f
or edi, dword [eax*4 + 0x43b410]
or edi, dword [edx*4 + 0x43b510]
xor edi, ebx
mov ecx, edi
mov dword [ebp - 0x20], edi
mov edx, edi
shr ecx, 0x1f
ror edx, 1
lea eax, [edi + edi]
or ecx, eax
mov eax, edx
shr eax, 2
xor ecx, 0xfffffffd
xor eax, 0xfffffff2
and ecx, 0x3f
and eax, 0x3f
mov edi, dword [ecx*4 + 0x43b710]
or edi, dword [eax*4 + 0x43b510]
mov eax, edx
xor eax, 0x640
shr eax, 6
and eax, 0x3f
or edi, dword [eax*4 + 0x43b110]
mov eax, edx
xor eax, 0x200000
shr eax, 0x12
and eax, 0x3f
or edi, dword [eax*4 + 0x43b310]
mov eax, edx
shr eax, 0x16
xor eax, 0xffffffea
and eax, 0x3f
or edi, dword [eax*4 + 0x43b610]
mov eax, edx
shr eax, 0x1a
xor eax, 0xfffffff2
and eax, 0x3f
or edi, dword [eax*4 + 0x43b010]
mov eax, edx
shr eax, 0xa
xor eax, 0xffffffe6
shr edx, 0xe
and eax, 0x3f
xor edx, 0xfffffff6
and edx, 0x3f
or edi, dword [eax*4 + 0x43b210]
or edi, dword [edx*4 + 0x43b410]
xor edi, esi
mov ecx, edi
mov edx, edi
ror edx, 1
shr ecx, 0x1f
lea eax, [edi + edi]
or ecx, eax
mov eax, edx
xor eax, 0x4800
xor ecx, 0xfffffff5
shr eax, 0xa
and ecx, 0x3f
and eax, 0x3f
mov esi, dword [ecx*4 + 0x43b710]
or esi, dword [eax*4 + 0x43b210]
mov eax, edx
xor eax, 0x2400000
shr eax, 0x16
and eax, 0x3f
or esi, dword [eax*4 + 0x43b610]
mov eax, edx
shr eax, 0x1a
xor eax, 0xffffffeb
and eax, 0x3f
or esi, dword [eax*4 + 0x43b010]
mov eax, edx
shr eax, 0x12
xor eax, 0xfffffff8
and eax, 0x3f
or esi, dword [eax*4 + 0x43b310]
mov eax, edx
xor eax, 0x38000
shr eax, 0xe
and eax, 0x3f
or esi, dword [eax*4 + 0x43b410]
mov eax, edx
shr eax, 6
xor eax, 0xfffffff7
shr edx, 2
and eax, 0x3f
xor edx, 0xfffffffa
and edx, 0x3f
or esi, dword [eax*4 + 0x43b110]
or esi, dword [edx*4 + 0x43b510]
xor esi, dword [ebp - 0x20]
mov ecx, esi
mov edx, esi
ror edx, 1
shr ecx, 0x1f
lea eax, [esi + esi]
or ecx, eax
mov eax, edx
xor eax, 0x3800
xor ecx, 0xfffffffd
shr eax, 0xa
and ecx, 0x3f
and eax, 0x3f
mov ebx, dword [ecx*4 + 0x43b710]
or ebx, dword [eax*4 + 0x43b210]
mov eax, edx
xor eax, 0x240000
shr eax, 0x12
and eax, 0x3f
or ebx, dword [eax*4 + 0x43b310]
mov eax, edx
shr eax, 0x16
xor eax, 0xffffffe3
and eax, 0x3f
or ebx, dword [eax*4 + 0x43b610]
mov eax, edx
shr eax, 0xe
xor eax, 0xffffffea
and eax, 0x3f
or ebx, dword [eax*4 + 0x43b410]
mov eax, edx
shr eax, 2
xor eax, 0xffffffe6
and eax, 0x3f
or ebx, dword [eax*4 + 0x43b510]
mov eax, edx
shr eax, 6
xor edx, 0x60000000
xor eax, 0xfffffff6
shr edx, 0x1a
and eax, 0x3f
or ebx, dword [eax*4 + 0x43b110]
or ebx, dword [edx*4 + 0x43b010]
xor ebx, edi
mov ecx, ebx
mov dword [ebp - 0x20], ebx
mov edx, ebx
shr ecx, 0x1f
ror edx, 1
lea eax, [ebx + ebx]
or ecx, eax
mov eax, edx
xor eax, 0x3400000
xor ecx, 0x17
shr eax, 0x16
and ecx, 0x3f
and eax, 0x3f
mov ebx, dword [ecx*4 + 0x43b710]
or ebx, dword [eax*4 + 0x43b610]
mov eax, edx
shr eax, 0x1a
xor eax, 0xffffffea
and eax, 0x3f
or ebx, dword [eax*4 + 0x43b010]
mov eax, edx
shr eax, 0x12
xor eax, 0xfffffff1
and eax, 0x3f
or ebx, dword [eax*4 + 0x43b310]
mov eax, edx
shr eax, 0xa
xor eax, 0xffffffe8
and eax, 0x3f
or ebx, dword [eax*4 + 0x43b210]
mov eax, edx
shr eax, 2
xor eax, 0xffffffe6
and eax, 0x3f
or ebx, dword [eax*4 + 0x43b510]
mov eax, edx
shr eax, 0xe
xor eax, 0xfffffff0
shr edx, 6
and eax, 0x3f
xor edx, 0xfffffff5
and edx, 0x3f
or ebx, dword [eax*4 + 0x43b410]
or ebx, dword [edx*4 + 0x43b110]
xor ebx, esi
mov ecx, ebx
mov dword [ebp - 0x24], ebx
mov edx, ebx
shr ecx, 0x1f
ror edx, 1
lea eax, [ebx + ebx]
or ecx, eax
mov eax, edx
xor eax, 0x7400000
xor ecx, 0x12
shr eax, 0x16
and ecx, 0x3f
and eax, 0x3f
mov ebx, dword [ecx*4 + 0x43b710]
or ebx, dword [eax*4 + 0x43b610]
mov eax, edx
shr eax, 0x1a
xor eax, 0xffffffe5
and eax, 0x3f
or ebx, dword [eax*4 + 0x43b010]
mov eax, edx
shr eax, 0xa
xor eax, 0xffffffef
and eax, 0x3f
or ebx, dword [eax*4 + 0x43b210]
mov eax, edx
xor eax, 0x40000
shr eax, 0x12
and eax, 0x3f
or ebx, dword [eax*4 + 0x43b310]
mov eax, edx
shr eax, 2
xor eax, 0xffffffef
and eax, 0x3f
or ebx, dword [eax*4 + 0x43b510]
mov eax, edx
shr eax, 6
xor edx, 0x48000
xor eax, 0xfffffff2
shr edx, 0xe
and eax, 0x3f
and edx, 0x3f
or ebx, dword [eax*4 + 0x43b110]
or ebx, dword [edx*4 + 0x43b410]
mov eax, dword [ebp - 0x24]
mov edx, ebx
xor edx, dword [ebp - 0x20]
mov ecx, ebx
mov dword [ebp - 8], eax
mov byte [ebp - 5], al
mov eax, dword [ebp - 0x20]
shr ecx, 0x18
shr eax, 0x18
mov dword [ebp - 0xc], edx
xor cl, al
mov byte [ebp - 9], dl
mov edx, dword [ebp - 0x24]
mov eax, edx
shr eax, 0x18
mov byte [ebp - 8], al
mov eax, dword [ebp - 0x20]
shr eax, 0x10
shr ebx, 0x10
xor bl, al
mov byte [ebp - 0xc], cl
mov al, byte [ebp - 7]
mov cl, byte [ebp - 0xb]
mov byte [ebp - 6], al
shr edx, 0x10
xor edi, edi
mov byte [ebp - 0xb], bl
mov byte [ebp - 0xa], cl
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x14], eax
mov byte [ebp - 7], dl
mov eax, dword [ebp - 8]
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0xc]
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x20], eax
movzx eax, byte [eax]
lea esi, [ebp - 0x1c]
mov ecx, eax
mov edx, 8
shr ecx, 4
and eax, 0xf
sub eax, ecx
lea ebx, [eax*8 + 0x80]
lea eax, [edi + ecx]
add ecx, edi
shl ecx, 3
lea eax, [eax*8 + 0x43c078]
sub esi, ecx
sub esi, 0x43c078
mov cl, byte [eax + ebx]
lea eax, [eax + 1]
or cl, byte [eax - 1]
or byte [esi + eax - 1], cl
sub edx, 1
jne 0x40ab67
mov eax, dword [ebp - 0x20]
add edi, 0x20
inc eax
mov dword [ebp - 0x20], eax
cmp edi, 0x100
jl 0x40ab34
mov ecx, dword [ebp - 0x28]
mov edx, dword [ebp - 0x30]
mov esi, dword [ebp - 0x37]
mov dword [ebp - 0x38], esi
movzx eax, byte [ecx]
xor al, byte [ebp - 0x1c]
mov byte [edx], al
inc edx
mov ax, word [ebp - 0x33]
mov word [ebp - 0x34], ax
mov al, byte [ebp - 0x31]
mov byte [ebp - 0x32], al
mov al, byte [ecx]
inc ecx
mov dword [ebp - 0x28], ecx
mov ecx, dword [ebp - 0x2c]
dec ecx
mov byte [ebp - 0x31], al
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x30], edx
test ecx, ecx
je 0x40abcd
mov eax, dword [ebp - 0x34]
jmp 0x40a042
mov ecx, dword [ebp - 4]
xor eax, eax
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0041abe3
mov esp, ebp
pop ebp
ret