Function at 0x42e070
Capabilities:
Authenticate hmac
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
mov eax, 0x334
call fcn.0043b180
mov eax, dword [0x4fc060]
xor eax, esp
mov dword [esp + 0x330], eax
mov eax, dword [esp + 0x33c]
mov ecx, dword [esp + 0x344]
mov edx, dword [esp + 0x348]
push ebx
mov ebx, dword [esp + 0x33c]
push ebp
mov ebp, dword [esp + 0x348]
push esi
mov esi, dword [esp + 0x35c]
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x360]
push edi
mov dword [esp + 0x78], ebx
mov dword [esp + 0x5c], ebp
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x3c], edx
mov dword [esp + 0x54], eax
mov edi, 0x40
mov dword [esp + 0x34], 0x28
mov dword [esp + 0x1c], 8
mov byte [esp + 0x12], 1
cmp esi, 0x100000
jb 0x42e10e
push str.data_plus_mac_plus_padding_size___1024__1024
push 0x1c7
push str.._ssl_s3_cbc.c
call fcn.00407600
add esp, 0xc
push ebx
call fcn.004558c0
push eax
call fcn.0040ec30
add esp, 8
cmp eax, 0x2a0
jg 0x42e1e8
je 0x42e1b3
cmp eax, 4
je 0x42e171
cmp eax, 0x40
jne 0x42e1f9
lea ecx, [esp + 0x98]
push ecx
call fcn.00465250
add esp, 4
test eax, eax
jle 0x42e843
mov dword [esp + 0x24], 0x42de50
mov dword [esp + 0x14], 0x4668c0
mov dword [esp + 0x18], 0x14
jmp 0x42e2b1
lea edx, [esp + 0x98]
push edx
call fcn.00464750
add esp, 4
test eax, eax
jle 0x42e843
mov dword [esp + 0x24], 0x42ddd0
mov dword [esp + 0x14], 0x465110
mov dword [esp + 0x18], 0x10
mov dword [esp + 0x34], 0x30
mov byte [esp + 0x12], 0
jmp 0x42e2b1
lea eax, [esp + 0x98]
push eax
call fcn.00463230
add esp, 4
test eax, eax
jle 0x42e843
mov dword [esp + 0x24], 0x42def0
mov dword [esp + 0x14], 0x464450
mov dword [esp + 0x18], 0x20
jmp 0x42e2b1
sub eax, 0x2a1
je 0x42e274
dec eax
je 0x42e256
dec eax
je 0x42e224
push 0x4bcb3c
push 0x209
push str.._ssl_s3_cbc.c
call fcn.00407600
add esp, 0xc
test ebp, ebp
je 0x42e843
mov dword [ebp], 0
jmp 0x42e843
lea ecx, [esp + 0x98]
push ecx
call fcn.004631d0
add esp, 4
test eax, eax
jle 0x42e843
mov dword [esp + 0x24], 0x42def0
mov dword [esp + 0x14], 0x464450
mov dword [esp + 0x18], 0x1c
jmp 0x42e2b1
lea edx, [esp + 0x98]
push edx
call fcn.004624e0
add esp, 4
test eax, eax
jle 0x42e843
mov dword [esp + 0x18], edi
jmp 0x42e294
lea eax, [esp + 0x98]
push eax
call fcn.00462440
add esp, 4
test eax, eax
jle 0x42e843
mov dword [esp + 0x18], 0x30
mov dword [esp + 0x1c], 0x10
mov edi, 0x80
mov dword [esp + 0x14], 0x4631b0
mov dword [esp + 0x24], 0x42dfe0
mov bl, byte [esp + 0x36c]
mov dword [esp + 0x30], 0xd
test bl, bl
je 0x42e2d7
mov ecx, dword [esp + 0x368]
mov edx, dword [esp + 0x34]
lea eax, [edx + ecx + 0xb]
mov dword [esp + 0x30], eax
mov edx, dword [esp + 0x1c]
xor ecx, ecx
test bl, bl
sete cl
lea ebp, [ecx*4 + 2]
mov ecx, dword [esp + 0x30]
sub ecx, dword [esp + 0x18]
mov dword [esp + 0x44], ebp
lea eax, [ecx + edx]
add eax, edi
xor edx, edx
lea eax, [eax + esi - 1]
div edi
add ecx, dword [esp + 0x35c]
xor edx, edx
mov esi, eax
xor eax, eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov eax, ecx
div edi
mov dword [esp + 0x48], edx
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x1c]
xor edx, edx
add eax, ecx
div edi
xor edx, edx
test bl, bl
setne dl
add edx, ebp
mov dword [esp + 0x6c], eax
cmp esi, edx
jbe 0x42e34d
sub esi, ebp
mov eax, esi
mov dword [esp + 0x28], eax
imul eax, edi
mov dword [esp + 0x2c], eax
cmp byte [esp + 0x36c], 0
lea ebx, [ecx*8]
jne 0x42e3e8
push edi
lea eax, [esp + 0x1c4]
push 0
push eax
lea ebx, [ebx + edi*8]
call fcn.0043c360
mov esi, dword [esp + 0x374]
add esp, 0xc
cmp esi, 0x80
jbe 0x42e39e
push str.mac_secret_length___sizeof_hmac_pad_
push 0x271
push str.._ssl_s3_cbc.c
call fcn.00407600
add esp, 0xc
mov ecx, dword [esp + 0x54]
push esi
push ecx
lea edx, [esp + 0x1c8]
push edx
call fcn.0043bff0
add esp, 0xc
xor eax, eax
test edi, edi
je 0x42e3cd
lea ebx, [ebx]
xor byte [esp + eax + 0x1c0], 0x36
inc eax
cmp eax, edi
jb 0x42e3c0
mov ebp, dword [esp + 0x14]
lea eax, [esp + 0x1c0]
push eax
lea ecx, [esp + 0x9c]
push ecx
call ebp
add esp, 8
jmp 0x42e3ec
mov ebp, dword [esp + 0x14]
cmp byte [esp + 0x12], 0
mov esi, dword [esp + 0x1c]
je 0x42e431
lea edx, [esi - 4]
push edx
lea eax, [esp + 0x174]
push 0
push eax
call fcn.0043c360
lea eax, [esp + esi + 0x17c]
mov ecx, ebx
shr ecx, 0x18
mov byte [eax - 4], cl
mov edx, ebx
shr edx, 0x10
mov ecx, ebx
add esp, 0xc
shr ecx, 8
mov byte [eax - 3], dl
mov byte [eax - 2], cl
mov byte [eax - 1], bl
jmp 0x42e466
push esi
lea edx, [esp + 0x174]
push 0
push edx
call fcn.0043c360
lea eax, [esp + esi + 0x17c]
mov ecx, ebx
shr ecx, 0x18
mov byte [eax - 5], cl
mov edx, ebx
shr edx, 0x10
mov ecx, ebx
add esp, 0xc
shr ecx, 8
mov byte [eax - 6], dl
mov byte [eax - 7], cl
mov byte [eax - 8], bl
mov ebx, dword [esp + 0x2c]
test ebx, ebx
je 0x42e585
cmp byte [esp + 0x36c], 0
je 0x42e50a
mov esi, dword [esp + 0x30]
cmp esi, edi
jbe 0x42e843
mov ebx, dword [esp + 0x4c]
lea edx, [esp + 0x98]
push ebx
push edx
sub esi, edi
call ebp
push esi
add ebx, edi
lea eax, [esp + 0x24c]
push ebx
push eax
call fcn.0043bff0
mov ebx, dword [esp + 0x50]
mov ecx, edi
sub ecx, esi
push ecx
lea edx, [esp + esi + 0x258]
push ebx
push edx
call fcn.0043bff0
lea eax, [esp + 0x260]
push eax
lea ecx, [esp + 0xbc]
push ecx
call ebp
mov eax, dword [esp + 0x54]
xor edx, edx
div edi
add esp, 0x28
dec eax
cmp eax, 1
jbe 0x42e585
sub ebx, esi
add ebx, edi
lea esi, [eax - 1]
lea edx, [esp + 0x98]
push ebx
push edx
call dword [esp + 0x1c]
add esp, 8
add ebx, edi
dec esi
jne 0x42e4f3
jmp 0x42e585
mov eax, dword [esp + 0x4c]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x240], ecx
mov ecx, dword [eax + 8]
mov dword [esp + 0x244], edx
mov dl, byte [eax + 0xc]
lea eax, [edi - 0xd]
push eax
mov dword [esp + 0x24c], ecx
lea ecx, [esp + 0x251]
push esi
push ecx
mov byte [esp + 0x258], dl
call fcn.0043bff0
lea edx, [esp + 0x24c]
push edx
lea eax, [esp + 0xa8]
push eax
call ebp
xor edx, edx
mov eax, ebx
div edi
add esp, 0x14
cmp eax, 1
jbe 0x42e585
lea esi, [esi + edi - 0xd]
lea ebx, [eax - 1]
lea ecx, [esp + 0x98]
push esi
push ecx
call ebp
add esp, 8
add esi, edi
dec ebx
jne 0x42e572
push 0x40
lea edx, [esp + 0x184]
push 0
push edx
call fcn.0043c360
mov ebp, dword [esp + 0x34]
mov eax, dword [esp + 0x50]
add eax, ebp
add esp, 0xc
mov dword [esp + 0x50], ebp
mov dword [esp + 0x70], eax
cmp ebp, eax
ja 0x42e784
mov eax, ebp
xor eax, dword [esp + 0x58]
xor esi, esi
lea edx, [eax - 1]
not eax
shr eax, 0x1f
shr edx, 0x1f
and dl, al
mov eax, ebp
xor eax, dword [esp + 0x6c]
neg dl
lea ebx, [eax - 1]
shr ebx, 0x1f
not eax
shr eax, 0x1f
and bl, al
neg bl
mov byte [esp + 0x22], dl
mov byte [esp + 0x13], bl
test edi, edi
je 0x42e71d
mov eax, dword [esp + 0x48]
lea ecx, [eax + 1]
shr ecx, 0x1f
mov dword [esp + 0x74], ecx
mov cl, bl
not cl
or cl, dl
mov byte [esp + 0x23], cl
movzx ebp, dl
mov ecx, edi
sub ecx, dword [esp + 0x1c]
mov dword [esp + 0x64], ebp
mov ebp, dword [esp + 0x48]
mov dword [esp + 0x7c], ecx
mov ecx, dword [esp + 0x1c]
shr eax, 0x1f
neg ebp
sub ecx, edi
lea edx, [esp + ecx + 0x170]
mov dword [esp + 0x44], eax
mov dword [esp + 0x28], edx
jmp 0x42e644
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x30]
mov byte [esp + 0x12], 0
cmp ecx, edx
jae 0x42e65e
mov edx, dword [esp + 0x4c]
mov dl, byte [edx + ecx]
jmp 0x42e674
mov ebx, dword [esp + 0x360]
add ebx, edx
cmp ecx, ebx
jae 0x42e678
mov ebx, dword [esp + 0x3c]
sub ebx, edx
mov dl, byte [ebx + ecx]
mov byte [esp + 0x12], dl
inc ecx
mov dword [esp + 0x2c], ecx
mov ecx, esi
shr ecx, 0x1f
mov edx, ebp
shr edx, 0x1f
xor dl, al
mov bl, cl
xor bl, al
or dl, bl
xor dl, cl
dec dl
movzx eax, dl
and eax, dword [esp + 0x64]
mov ebx, esi
mov dword [esp + 0x40], eax
not eax
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x38]
and al, byte [esp + 0x12]
mov edx, dword [esp + 0x40]
and dl, 0x80
or al, dl
mov edx, dword [esp + 0x48]
inc edx
sub ebx, edx
mov dl, byte [esp + 0x74]
shr ebx, 0x1f
xor bl, dl
xor dl, cl
or bl, dl
xor bl, cl
dec bl
and bl, byte [esp + 0x22]
not bl
and bl, byte [esp + 0x23]
and al, bl
mov bl, byte [esp + 0x13]
cmp esi, dword [esp + 0x7c]
jb 0x42e704
mov edx, dword [esp + 0x28]
movzx ecx, bl
mov dword [esp + 0x40], ecx
not ecx
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x40]
and cl, byte [edx]
mov edx, dword [esp + 0x38]
and al, dl
or al, cl
inc dword [esp + 0x28]
mov byte [esp + esi + 0x2c0], al
inc esi
inc ebp
cmp esi, edi
jb 0x42e640
mov ebp, dword [esp + 0x50]
lea eax, [esp + 0x2c0]
push eax
lea ecx, [esp + 0x9c]
push ecx
call dword [esp + 0x1c]
lea edx, [esp + 0x2c8]
push edx
lea eax, [esp + 0xa4]
push eax
call dword [esp + 0x34]
mov esi, dword [esp + 0x28]
add esp, 0x10
xor eax, eax
test esi, esi
je 0x42e775
jmp 0x42e760
mov cl, byte [esp + eax + 0x2c0]
and cl, bl
or byte [esp + eax + 0x180], cl
inc eax
cmp eax, esi
jb 0x42e760
inc ebp
mov dword [esp + 0x50], ebp
cmp ebp, dword [esp + 0x70]
jbe 0x42e5b3
lea edx, [esp + 0x80]
push edx
call fcn.004549c0
mov eax, dword [esp + 0x7c]
mov ecx, dword [eax]
push 0
push ecx
lea edx, [esp + 0x8c]
push edx
call fcn.00454a10
add esp, 0x10
test eax, eax
jle 0x42e833
cmp byte [esp + 0x36c], 0
je 0x42e85e
mov esi, dword [esp + 0x34]
push esi
lea eax, [esp + 0x1c4]
push 0x5c
push eax
call fcn.0043c360
mov ecx, dword [esp + 0x374]
mov edx, dword [esp + 0x60]
push ecx
push edx
lea eax, [esp + 0x94]
push eax
call fcn.00454bc0
add esp, 0x18
test eax, eax
jle 0x42e833
push esi
lea ecx, [esp + 0x1c4]
push ecx
lea edx, [esp + 0x88]
push edx
call fcn.00454bc0
add esp, 0xc
test eax, eax
jle 0x42e833
mov eax, dword [esp + 0x18]
push eax
lea ecx, [esp + 0x184]
push ecx
lea edx, [esp + 0x88]
push edx
call fcn.00454bc0
add esp, 0xc
test eax, eax
jg 0x42e8af
lea ecx, [esp + 0x80]
push ecx
call fcn.00454c50
add esp, 4
xor eax, eax
mov ecx, dword [esp + 0x340]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00439f9b
add esp, 0x334
ret
xor eax, eax
test edi, edi
je 0x42e871
xor byte [esp + eax + 0x1c0], 0x6a
inc eax
cmp eax, edi
jb 0x42e864
push edi
lea eax, [esp + 0x1c4]
push eax
lea ecx, [esp + 0x88]
push ecx
call fcn.00454bc0
add esp, 0xc
test eax, eax
jle 0x42e833
mov edx, dword [esp + 0x18]
push edx
lea eax, [esp + 0x184]
push eax
lea ecx, [esp + 0x88]
push ecx
call fcn.00454bc0
add esp, 0xc
test eax, eax
jle 0x42e833
mov eax, dword [esp + 0x68]
lea edx, [esp + 0x60]
push edx
push eax
lea ecx, [esp + 0x88]
push ecx
call fcn.00454d30
mov eax, dword [esp + 0x68]
add esp, 0xc
test eax, eax
je 0x42e8d7
mov edx, dword [esp + 0x60]
mov dword [eax], edx
lea eax, [esp + 0x80]
push eax
call fcn.00454c50
add esp, 4
mov eax, 1
jmp 0x42e845