Function at 0x5e709cfa
Capabilities:
Encode data using xor
Get thread local storage value

Disassembly:
std
pop edi
pop esi
mov ecx, ecx
pop ebx
mov ecx, ecx
pop ebp
ret 0x10
mov eax, 0x80004001
jmp 0x5e6e6c2f
mov ecx, ecx
mov eax, 0x5e72ab30
call fcn.5e711585
sub esp, 0x3c
test dword [0x6106fc72], 0x949cb066
jb 0x5e6f43ce
push edi
mov edi, ecx
mov dword [ebp - 0x1c], edi
cmp byte [edi + 0xb0], 0
je 0x5e709d35
nop
nop
nop
xor eax, eax
nop
nop
nop
jmp 0x5e70a2d4
mov eax, dword [edi + 0x14]
nop
nop
push ebx
mov ecx, ecx
push esi
test eax, eax
jne 0x5e709dce
push ebx
mov bl, byte [edi + 0x31]
sub bl, al
pop ebx
jne 0x5e709d68
push 0x5e72fe60
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x1c], 1
mov eax, eax
push eax
nop
nop
call fcn.5e70e33c
mov ecx, ecx
xor esi, esi
cmp dword [edi + 0x20], esi
jne 0x5e709d4f
or dword [ebp - 0x2c], 0xffffffff
mov ecx, ecx
mov dword [ebp - 0x48], esi
mov dword [ebp - 0x44], esi
mov dword [ebp - 0x40], esi
xor ebx, ebx
nop
nop
mov dword [ebp - 4], esi
lea eax, [ebp - 0x48]
mov dword [ebp - 0x38], 0x6f10701
inc ebx
nop
mov dword [ebp - 0x34], esi
nop
push eax
lea ecx, [edi + 0x10]
mov dword [ebp - 0x30], ebx
call int.5e6f26da
lea ecx, [edi + 0x40]
push ebx
mov ecx, ecx
call fcn.5e6eed81
push esi
nop
nop
nop
lea ecx, [edi + 0x58]
call fcn.5e6eed81
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x48]
mov dword [edi + 0x64], esi
call fcn.5e6bd04d
jmp 0x5e70a214
xor esi, esi
xor ebx, ebx
nop
nop
nop
mov edx, esi
mov ecx, esi
inc ebx
mov dword [ebp - 0x10], edx
mov dword [ebp - 0x14], ecx
test eax, eax
je 0x5e709e86
jmp 0x5e709ded
mov edx, dword [ebp - 0x10]
cmp dword [edi + 0x20], 0
mov eax, dword [edi + 0x10]
mov esi, dword [eax + ecx*4]
mov esi, dword [esi + 0x18]
jne 0x5e709e5f
cmp dword [0x6107ecfe], 0xf3acc57d
je fcn.5e71d845
mov eax, dword [edi + 0x14]
dec eax
cmp ecx, eax
je 0x5e709e23
lea eax, [ecx + 1]
push eax
push edx
lea ecx, [edi + 0x4c]
call fcn.5e6caf42
jmp 0x5e709e32
test esi, esi
je 0x5e709e32
push edx
push 0
lea ecx, [edi + 0x58]
call fcn.5e70a4a4
mov dword [ebp - 0x18], ebx
cmp esi, ebx
jbe 0x5e709e5f
lea ecx, [edi + 0x58]
mov edi, dword [ebp - 0x10]
mov dword [ebp - 0x20], ecx
mov eax, eax
lea eax, [ebx + edi]
push eax
call fcn.5e6eed81
mov ecx, dword [ebp - 0x20]
inc ebx
push ecx
mov ecx, ebx
sub ecx, esi
pop ecx
jb 0x5e709e42
mov edi, dword [ebp - 0x1c]
xor ebx, ebx
inc ebx
add dword [ebp - 0x10], esi
nop
lea ecx, [edi + 0x40]
push esi
call fcn.5e6eed81
mov ecx, dword [ebp - 0x14]
nop
inc ecx
mov dword [ebp - 0x14], ecx
push eax
mov eax, ecx
sub eax, dword [edi + 0x14]
pop eax
jb 0x5e709dea
nop
nop
nop
xor esi, esi
mov eax, eax
mov eax, dword [edi + 0x20]
test eax, eax
je 0x5e709fed
mov dword [ebp - 0x14], esi
mov ecx, esi
mov ecx, ecx
mov dword [ebp - 0x18], esi
mov eax, dword [edi + 0x1c]
add eax, ecx
mov ecx, ecx
mov ecx, dword [eax + 8]
mov dword [ebp - 0x24], ecx
cmp ecx, dword [edi + 0x44]
jae 0x5e70a2b5
mov ecx, dword [eax]
cmp ecx, dword [edi + 0x44]
jae 0x5e70a2b5
mov ecx, ecx
mov edx, dword [edi + 0x40]
mov eax, dword [eax + 4]
mov dword [ebp - 0x20], eax
push ebx
mov ebx, eax
sub ebx, dword [edx + ecx*4]
pop ebx
jae 0x5e70a2b5
nop
mov eax, esi
push eax
mov eax, ecx
and eax, ecx
pop eax
je 0x5e709efb
nop
nop
nop
add eax, dword [edx]
test word [0x6104e872], 0xec5d
je 0x5e72a325
lea edx, [edx + 4]
dec ecx
jne 0x5e709ee1
push dword [ebp - 0x24]
test word [0x6108939f], 0xcbc9
js 0x5e6ecce8
add eax, dword [ebp - 0x20]
lea ecx, [edi + 0x4c]
push eax
test word [0x610b3df9], 0xba50
je 0x5e714ebb
add eax, 0x610b3df9
push eax
mov edx, 0xaf98840f
add byte [eax], al
call fcn.5e6caf42
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x18]
inc edx
add ecx, 0xc
cmp byte [0x610d2594], 0xc6
jns 0x5e709f70
add eax, 0xc432ca4
adc al, 0xdd
fsubr dword [esi - 0x74fef84d]
jg 0x5e709f16
or byte [edx], 0x2a
cmpsd dword [esi], dword es:[edi]
pop ss
cwde
xor dword [ebx + 0x22], ebx
sbb al, 0xbc
push ebx
jbe 0x5e709f1c
outsd dx, dword [esi]
cdq
cmp byte [edx], ah
sub dword [ebx - 0x12], ecx
sbb ecx, dword [eax + 0x34]
jmp 0x5e709fd7
mov dword [ebp - 0x14], edx
test dword [0x610285fe], 0x4cdc860d
jns 0x5e709fa4
mov byte [esi + 0x2f], dl
or edx, dword [ebx + edi*8 - 0x21076792]
invalid
mov dword [ebp - 0x18], ecx
cmp edx, dword [edi + 0x20]
jb 0x5e709e9d
cmp dword [ebp - 0x10], 0
jbe 0x5e709fed
lea eax, [edi + 0x40]
mov ebx, esi
test dword [str.iSUu_], 0x75555369
je 0x5e72a1b4
push ebx
mov ecx, eax
call fcn.5e705cda
cmp eax, 0xffffffff
jne 0x5e709fe1
or dword [ebx - 0x73], edx
dec edi
pop eax
push ebx
lea ecx, [edi + 0x58]
call fcn.5e6eed81
inc ebx
lea eax, [edi + 0x40]
cmp ebx, dword [ebp - 0x10]
jb 0x5e709fbb
xor ebx, ebx
inc ebx
lea eax, [edi + 0x40]
mov ecx, eax
cmp dword [0x610d396e], 0x654ca412
je 0x5e70a02f
and bh, byte [ecx - 0x556b4ea9]
jns 0x5e70a062
invalid
mov dword [ebp - 0x28], eax
call 0x5e70ab2b
test al, al
je 0x5e70a2b5
lea ecx, [edi + 0x40]
call fcn.5e7047ed
test al, al
je 0x5e70a2b5
push ecx
mov ecx, dword [edi + 0x5c]
sub ecx, ebx
pop ecx
je 0x5e70a0ef
mov ecx, dword [edi + 0x64]
cmp dword [0x60fd940c], 0x250cfb2d
je 0x5e72acc8
xchg esp, eax
std
pushal
sub eax, 0xf250cfb
test byte [ecx + 0xc], bl
add al, byte [eax]
lea eax, [edi + 0x40]
mov edx, dword [eax]
shl ecx, 2
nop
nop
mov dword [ebp - 0x24], edx
cmp dword [ecx + edx], esi
je 0x5e70a0ef
mov edx, dword [eax + 0x28]
mov dword [ebp - 0x20], edx
nop
nop
nop
jmp 0x5e70a08f
lea eax, [edi + 0x40]
mov ecx, dword [edx + ecx]
mov dword [ebp - 0x18], ecx
push ecx
mov ecx, eax
call fcn.5e705cda
push ebx
mov ebx, eax
and ebx, eax
pop ebx
js 0x5e70a0c2
mov ecx, dword [edi + 0x4c]
mov edx, dword [ebp - 0x20]
mov ecx, dword [ecx + eax*8 + 4]
mov eax, dword [ebp - 0x24]
shl ecx, 2
push ebx
mov ebx, dword [ecx + eax]
sub ebx, esi
pop ebx
jne 0x5e70a08c
mov ecx, ecx
jmp 0x5e70a0ef
push dword [ebp - 0x18]
lea ecx, [edi + 0x40]
cmp word [0x61022481], 0xbafb
js 0x5e7298c9
call fcn.5e705d8f
push ebx
mov ebx, eax
and ebx, eax
pop ebx
js 0x5e70a0ef
push eax
lea ecx, [edi + 0x58]
mov eax, eax
call fcn.5e6c5396
push edx
mov dl, byte [edi + 0x31]
sub dl, 0
pop edx
je 0x5e70a214
mov eax, dword [edi + 0x5c]
mov edx, esi
mov ecx, dword [edi + 0x44]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x18], edx
push ecx
mov ecx, eax
and ecx, eax
pop ecx
je 0x5e70a14c
mov ebx, eax
nop
mov eax, dword [edi + 0x58]
add ecx, edx
nop
nop
nop
push ecx
nop
nop
nop
lea ecx, [edi + 0x4c]
nop
push dword [eax + edx*4]
call fcn.5e6caf42
mov edx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x24]
inc edx
nop
nop
nop
mov dword [ebp - 0x18], edx
push ecx
mov ecx, edx
sub ecx, ebx
pop ecx
jb 0x5e70a118
mov eax, dword [ebp - 0x14]
xor ebx, ebx
inc ebx
mov dword [edi + 0x5c], esi
push ebx
mov ebx, eax
and ebx, eax
pop ebx
je 0x5e70a214
lea eax, [edi + 0x10]
mov ecx, ecx
lea ecx, [edi + 0x58]
mov dword [ebp - 0x20], eax
mov edi, dword [ebp - 0x28]
mov dword [ebp - 0x24], ecx
or dword [ebp - 0x2c], 0xffffffff
cmp word [0x61099517], 0x2a2a
je 0x5e6c841e
mov dword [ebp - 0x48], esi
mov dword [ebp - 0x44], esi
mov eax, eax
mov dword [ebp - 0x40], esi
nop
nop
lea ecx, [ebp - 0x48]
mov dword [ebp - 4], ebx
push ecx
mov ecx, eax
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x38], 0x6f10701
mov ecx, ecx
mov dword [ebp - 0x34], esi
mov eax, eax
call int.5e6f26da
push ebx
mov ecx, edi
call fcn.5e6eed81
nop
nop
nop
push dword [ebp - 0x10]
nop
mov ecx, dword [ebp - 0x24]
call fcn.5e6eed81
test byte [0x60fe8504], 0x23
jae 0x5e70a1f4
mov ah, 0xe1
ljmp 0xf091
nop
mov ebx, 0xffb92511
inc ebp
invalid
inc dword [ebp - 0x10]
lea ecx, [ebp - 0x48]
mov ecx, ecx
or dword [ebp - 4], 0xffffffff
call fcn.5e6bd04d
dec dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
jne 0x5e70a16c
mov edi, dword [ebp - 0x1c]
mov esi, dword [edi + 0x14]
test esi, esi
je 0x5e70a281
mov eax, dword [edi + 0x10]
mov ecx, ecx
lea ecx, [edi + 0x80]
dec esi
nop
mov eax, dword [eax + esi*4]
cmp dword [0x610c9e26], 0x7a5cfb5b
je 0x5e70a269
mov dword [ecx + 0x2f], ebx
mov ah, 0x18
jle 0x5e70a1ef
jns 0x5e70a2b3
ret 0x3b0a
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.5e6caf42
push ebx
mov ebx, esi
and ebx, esi
pop ebx
jne 0x5e70a21b
mov ecx, ecx
xor ebx, ebx
inc ebx
cmp dword [edi + 0x44], 0x10
ja 0x5e70a2b5
mov ecx, ecx
lea ecx, [edi + 0x40]
mov eax, dword [ecx + 0x1c]
add eax, dword [ecx + 0x10]
push ecx
mov ecx, eax
sub ecx, 0x10
pop ecx
ja 0x5e70a2b5
test byte [0x6107d831], 0x49
je 0x5e6e6c3a
call fcn.5e7047ed
push ebx
mov bl, al
and bl, al
pop ebx
jne 0x5e70a2bd
nop
mov eax, 0x80070057
jmp 0x5e70a2d2
nop
nop
nop
mov ecx, edi
call fcn.5e70a38d
nop
nop
nop
mov byte [edi + 0xb0], bl
xor eax, eax
pop esi
pop ebx
mov ecx, dword [ebp - 0xc]
mov eax, eax
pop edi
nop
nop
nop
mov dword fs:[0], ecx
mov ecx, ecx
mov esp, ebp
pop ebp
ret
add ecx, 0x10
jmp fcn.5e6e9180
jmp fcn.5e6cad39