Function at 0x100112a0
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x31c
call fcn.100338e0
push ebx
push ebp
push esi
mov esi, dword [esp + 0x344]
cmp esi, 0x100000
push edi
mov ebp, 0x40
mov dword [esp + 0x38], 0x28
mov dword [esp + 0x18], 8
mov byte [esp + 0x13], 1
jb 0x100112ee
push str.data_plus_mac_plus_padding_size___1024__1024
push 0x1d0
push str.._ssl_s3_cbc.c
call sub.LIBEAY32.dll_Ordinal_3244
add esp, 0xc
mov eax, dword [esp + 0x330]
push eax
call sub.LIBEAY32.dll_Ordinal_3896
push eax
call sub.LIBEAY32.dll_Ordinal_3837
add esp, 8
cmp eax, 0x2a1
jg 0x1001140a
je 0x100113d5
cmp eax, 4
je 0x10011393
cmp eax, ebp
je 0x1001135e
cmp eax, 0x2a0
jne 0x10011414
lea ecx, [esp + 0x1d4]
push ecx
call sub.LIBEAY32.dll_Ordinal_3479
add esp, 4
test eax, eax
jle 0x10011ab4
mov dword [esp + 0x28], 0x10011ca0
mov dword [esp + 0x14], 0x10033316
mov dword [esp + 0x1c], 0x20
jmp 0x100114b8
lea edx, [esp + 0x1d4]
push edx
call sub.LIBEAY32.dll_Ordinal_503
add esp, 4
test eax, eax
jle 0x10011ab4
mov dword [esp + 0x28], 0x10011bf0
mov dword [esp + 0x14], 0x1003330a
mov dword [esp + 0x1c], 0x14
jmp 0x100114b8
lea eax, [esp + 0x1d4]
push eax
call sub.LIBEAY32.dll_Ordinal_341
add esp, 4
test eax, eax
jle 0x10011ab4
mov dword [esp + 0x28], 0x10011b60
mov dword [esp + 0x14], 0x100332fe
mov dword [esp + 0x1c], 0x10
mov dword [esp + 0x38], 0x30
mov byte [esp + 0x13], 0
jmp 0x100114b8
lea ecx, [esp + 0x1d4]
push ecx
call sub.LIBEAY32.dll_Ordinal_3737
add esp, 4
test eax, eax
jle 0x10011ab4
mov dword [esp + 0x28], 0x10011ce0
mov dword [esp + 0x14], 0x100332f2
mov dword [esp + 0x1c], 0x30
jmp 0x100114ab
sub eax, 0x2a2
je 0x1001147f
dec eax
je 0x1001144d
push 0x1003c4a4
push 0x212
push str.._ssl_s3_cbc.c
call sub.LIBEAY32.dll_Ordinal_3244
mov eax, dword [esp + 0x344]
add esp, 0xc
test eax, eax
je 0x10011ab4
pop edi
pop esi
mov dword [eax], 0
pop ebp
xor eax, eax
pop ebx
add esp, 0x31c
ret
lea edx, [esp + 0x1d4]
push edx
call sub.LIBEAY32.dll_Ordinal_3631
add esp, 4
test eax, eax
jle 0x10011ab4
mov dword [esp + 0x28], 0x10011ca0
mov dword [esp + 0x14], 0x10033316
mov dword [esp + 0x1c], 0x1c
jmp 0x100114b8
lea eax, [esp + 0x1d4]
push eax
call sub.LIBEAY32.dll_Ordinal_3633
add esp, 4
test eax, eax
jle 0x10011ab4
mov dword [esp + 0x28], 0x10011ce0
mov dword [esp + 0x14], 0x100332f2
mov dword [esp + 0x1c], ebp
mov ebp, 0x80
mov dword [esp + 0x18], 0x10
mov bl, byte [esp + 0x354]
mov dword [esp + 0x30], 0xd
test bl, bl
je 0x100114de
mov ecx, dword [esp + 0x350]
mov edx, dword [esp + 0x38]
lea eax, [edx + ecx + 0xb]
mov dword [esp + 0x30], eax
mov cl, bl
mov eax, dword [esp + 0x1c]
neg cl
sbb ecx, ecx
mov edx, dword [esp + 0x18]
and ecx, 0xfffffffc
add ecx, 6
mov edi, ecx
mov ecx, dword [esp + 0x30]
sub ecx, eax
mov dword [esp + 0x34], edi
lea eax, [ecx + edx]
xor edx, edx
add eax, ebp
lea eax, [eax + esi - 1]
div ebp
mov edx, dword [esp + 0x344]
add ecx, edx
xor edx, edx
mov esi, eax
xor eax, eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x24], eax
mov eax, ecx
div ebp
mov eax, ecx
mov dword [esp + 0x40], edx
xor edx, edx
div ebp
xor edx, edx
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x18]
add eax, ecx
div ebp
xor edx, edx
test bl, bl
setne dl
add edx, edi
cmp esi, edx
mov dword [esp + 0x68], eax
jbe 0x1001155e
sub esi, edi
mov eax, esi
mov dword [esp + 0x2c], esi
imul eax, ebp
mov dword [esp + 0x24], eax
mov al, byte [esp + 0x354]
lea ebx, [ecx*8]
test al, al
jne 0x10011607
mov ecx, ebp
mov esi, dword [esp + 0x350]
mov edx, ecx
xor eax, eax
lea edi, [esp + 0xd4]
lea ebx, [ebx + ebp*8]
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
cmp esi, 0x80
rep stosb byte es:[edi], al
jbe 0x100115b6
push str.mac_secret_length___sizeof_hmac_pad_
push 0x27a
push str.._ssl_s3_cbc.c
call sub.LIBEAY32.dll_Ordinal_3244
add esp, 0xc
mov ecx, esi
mov esi, dword [esp + 0x34c]
mov eax, ecx
lea edi, [esp + 0xd4]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
test ebp, ebp
rep movsb byte es:[edi], byte [esi]
jbe 0x100115f0
mov cl, byte [esp + eax + 0xd4]
xor cl, 0x36
mov byte [esp + eax + 0xd4], cl
inc eax
cmp eax, ebp
jb 0x100115da
lea ecx, [esp + 0xd4]
lea edx, [esp + 0x1d4]
push ecx
push edx
call dword [esp + 0x1c]
add esp, 8
mov al, byte [esp + 0x13]
test al, al
je 0x10011655
mov eax, dword [esp + 0x18]
lea edi, [esp + 0x84]
lea ecx, [eax - 4]
xor eax, eax
mov edx, ecx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
mov edx, ebx
and ecx, 3
rep stosb byte es:[edi], al
mov eax, dword [esp + 0x18]
mov ecx, ebx
shr ecx, 0x18
lea eax, [esp + eax + 0x84]
shr edx, 0x10
mov byte [eax - 4], cl
mov ecx, ebx
shr ecx, 8
mov byte [eax - 3], dl
mov byte [eax - 2], cl
mov byte [eax - 1], bl
jmp 0x10011694
mov ecx, dword [esp + 0x18]
xor eax, eax
mov edx, ecx
lea edi, [esp + 0x84]
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov eax, edx
mov ecx, ebx
shr ecx, 0x18
lea eax, [esp + eax + 0x84]
mov edx, ebx
shr edx, 0x10
mov byte [eax - 5], cl
mov ecx, ebx
shr ecx, 8
mov byte [eax - 6], dl
mov byte [eax - 7], cl
mov byte [eax - 8], bl
mov eax, dword [esp + 0x24]
test eax, eax
jbe 0x100117f3
mov al, byte [esp + 0x354]
test al, al
je 0x1001175f
mov ebx, dword [esp + 0x30]
cmp ebx, ebp
jbe 0x10011ab4
mov esi, dword [esp + 0x33c]
lea edx, [esp + 0x1d4]
push esi
push edx
sub ebx, ebp
call dword [esp + 0x1c]
mov ecx, ebx
add esi, ebp
mov eax, ecx
lea edi, [esp + 0x15c]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
lea eax, [esp + 0x15c]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
mov esi, dword [esp + 0x34c]
mov ecx, ebp
sub ecx, ebx
lea edi, [esp + ebx + 0x160]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x1e0]
push ecx
call dword [esp + 0x24]
mov eax, dword [esp + 0x34]
xor edx, edx
div ebp
add esp, 0x10
dec eax
cmp eax, 1
jbe 0x100117f3
mov esi, ebp
lea edi, [eax - 1]
mov ecx, dword [esp + 0x340]
mov edx, esi
sub edx, ebx
lea eax, [esp + 0x1d4]
add edx, ecx
push edx
push eax
call dword [esp + 0x1c]
add esp, 8
add esi, ebp
dec edi
jne 0x10011738
jmp 0x100117f3
mov ecx, dword [esp + 0x33c]
mov esi, dword [esp + 0x340]
lea edi, [esp + 0x161]
mov ebx, dword [esp + 0x14]
mov edx, dword [ecx]
mov dword [esp + 0x154], edx
mov eax, dword [ecx + 4]
mov dword [esp + 0x158], eax
mov edx, dword [ecx + 8]
mov dword [esp + 0x15c], edx
mov al, byte [ecx + 0xc]
lea ecx, [ebp - 0xd]
mov edx, ecx
mov byte [esp + 0x160], al
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea eax, [esp + 0x154]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x1d8]
push ecx
call ebx
mov eax, dword [esp + 0x2c]
xor edx, edx
div ebp
add esp, 8
cmp eax, 1
jbe 0x100117f3
mov edx, dword [esp + 0x340]
lea edi, [eax - 1]
lea esi, [edx + ebp - 0xd]
lea eax, [esp + 0x1d4]
push esi
push eax
call ebx
add esp, 8
add esi, ebp
dec edi
jne 0x100117e0
mov ecx, 0x10
xor eax, eax
lea edi, [esp + 0x94]
rep stosd dword es:[edi], eax
mov edi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x3c], edi
lea eax, [edi + ecx]
cmp edi, eax
mov dword [esp + 0x60], eax
ja 0x100119f4
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0x68]
mov ecx, edi
mov esi, edi
xor ecx, eax
xor esi, edx
mov edx, esi
lea eax, [ecx - 1]
lea ebx, [esi - 1]
not ecx
not edx
shr eax, 0x1f
shr ecx, 0x1f
shr ebx, 0x1f
shr edx, 0x1f
and al, cl
and bl, dl
neg al
neg bl
xor esi, esi
mov byte [esp + 0x44], al
test ebp, ebp
mov byte [esp + 0x34], bl
jbe 0x10011990
mov edi, dword [esp + 0x40]
mov edx, dword [esp + 0x44]
and edx, 0xff
lea ecx, [edi + 1]
mov dword [esp + 0x58], edx
mov dword [esp + 0x2c], ecx
mov ecx, edi
mov edx, dword [esp + 0x2c]
shr edx, 0x1f
not bl
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0x18]
or bl, al
mov eax, ebp
shr ecx, 0x1f
sub eax, edx
mov dword [esp + 0x5c], ecx
mov byte [esp + 0x23], bl
mov dword [esp + 0x4c], eax
jmp 0x100118ab
mov ecx, dword [esp + 0x5c]
mov edi, dword [esp + 0x40]
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x30]
cmp eax, edx
mov byte [esp + 0x13], 0
jae 0x100118c8
mov edx, dword [esp + 0x33c]
mov dl, byte [eax + edx]
jmp 0x100118e3
mov ebx, dword [esp + 0x348]
add ebx, edx
cmp eax, ebx
jae 0x100118e7
mov ebx, eax
sub ebx, edx
mov edx, dword [esp + 0x340]
mov dl, byte [ebx + edx]
mov byte [esp + 0x13], dl
inc eax
mov edx, esi
mov dword [esp + 0x24], eax
mov eax, esi
sub eax, edi
mov ebx, dword [esp + 0x2c]
shr eax, 0x1f
shr edx, 0x1f
xor al, cl
xor cl, dl
or al, cl
mov ecx, dword [esp + 0x58]
xor al, dl
mov dword [esp + 0x64], edx
dec al
and eax, 0xff
and eax, ecx
mov ecx, esi
sub ecx, ebx
mov bl, byte [esp + 0x48]
shr ecx, 0x1f
xor cl, bl
xor dl, bl
mov bl, byte [esp + 0x64]
or cl, dl
mov dl, byte [esp + 0x44]
xor cl, bl
mov bl, byte [esp + 0x13]
dec cl
and cl, dl
mov dl, al
not dl
and dl, bl
and al, 0x80
not cl
or dl, al
mov eax, dword [esp + 0x4c]
and cl, dl
mov dl, byte [esp + 0x23]
and cl, dl
cmp esi, eax
jb 0x10011978
mov ebx, dword [esp + 0x18]
mov eax, dword [esp + 0x34]
mov edx, esi
and eax, 0xff
sub edx, ebp
add edx, ebx
mov dl, byte [esp + edx + 0x84]
and dl, al
not al
and al, cl
or dl, al
mov cl, dl
mov byte [esp + esi + 0x2ac], cl
inc esi
cmp esi, ebp
jb 0x100118a3
mov bl, byte [esp + 0x34]
mov edi, dword [esp + 0x3c]
lea eax, [esp + 0x2ac]
lea ecx, [esp + 0x1d4]
push eax
push ecx
call dword [esp + 0x1c]
lea edx, [esp + 0x2b4]
lea eax, [esp + 0x1dc]
push edx
push eax
call dword [esp + 0x38]
mov esi, dword [esp + 0x2c]
add esp, 0x10
xor eax, eax
test esi, esi
jbe 0x100119e3
mov cl, byte [esp + eax + 0x2ac]
mov dl, byte [esp + eax + 0x94]
and cl, bl
or dl, cl
mov byte [esp + eax + 0x94], dl
inc eax
cmp eax, esi
jb 0x100119c5
mov eax, dword [esp + 0x60]
inc edi
cmp edi, eax
mov dword [esp + 0x3c], edi
jbe 0x1001181e
lea edx, [esp + 0x6c]
push edx
call sub.LIBEAY32.dll_Ordinal_2630
mov eax, dword [esp + 0x334]
push 0
lea edx, [esp + 0x74]
mov ecx, dword [eax]
push ecx
push edx
call sub.LIBEAY32.dll_Ordinal_3109
add esp, 0x10
test eax, eax
jle 0x10011aa7
mov al, byte [esp + 0x354]
test al, al
je 0x10011ac1
mov esi, dword [esp + 0x38]
mov eax, 0x5c5c5c5c
mov ecx, esi
lea edi, [esp + 0xd4]
mov edx, ecx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
lea edx, [esp + 0x6c]
and ecx, 3
rep stosb byte es:[edi], al
mov eax, dword [esp + 0x350]
mov ecx, dword [esp + 0x34c]
push eax
push ecx
push edx
call sub.LIBEAY32.dll_Ordinal_269
add esp, 0xc
test eax, eax
jle 0x10011aa7
lea eax, [esp + 0xd4]
push esi
lea ecx, [esp + 0x70]
push eax
push ecx
call sub.LIBEAY32.dll_Ordinal_269
add esp, 0xc
test eax, eax
jle 0x10011aa7
mov edx, dword [esp + 0x1c]
lea eax, [esp + 0x94]
push edx
lea ecx, [esp + 0x70]
push eax
push ecx
call sub.LIBEAY32.dll_Ordinal_269
add esp, 0xc
test eax, eax
jg 0x10011b15
lea eax, [esp + 0x6c]
push eax
call sub.LIBEAY32.dll_Ordinal_2821
add esp, 4
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x31c
ret
xor eax, eax
test ebp, ebp
jbe 0x10011add
mov bl, byte [esp + eax + 0xd4]
xor bl, 0x6a
mov byte [esp + eax + 0xd4], bl
inc eax
cmp eax, ebp
jb 0x10011ac7
lea edx, [esp + 0xd4]
push ebp
lea eax, [esp + 0x70]
push edx
push eax
call sub.LIBEAY32.dll_Ordinal_269
add esp, 0xc
test eax, eax
jle 0x10011aa7
mov ecx, dword [esp + 0x1c]
lea edx, [esp + 0x94]
push ecx
lea eax, [esp + 0x70]
push edx
push eax
call sub.LIBEAY32.dll_Ordinal_269
add esp, 0xc
test eax, eax
jle 0x10011aa7
mov edx, dword [esp + 0x334]
lea ecx, [esp + 0x50]
push ecx
lea eax, [esp + 0x70]
push edx
push eax
call sub.LIBEAY32.dll_Ordinal_267
mov eax, dword [esp + 0x344]
add esp, 0xc
test eax, eax
je 0x10011b40
mov ecx, dword [esp + 0x50]
mov dword [eax], ecx
lea edx, [esp + 0x6c]
push edx
call sub.LIBEAY32.dll_Ordinal_2821
add esp, 4
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x31c
ret