Function at 0x4377ee
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
mov esi, dword [ebp]
add byte [ebx - 0x7cee74f2], cl
xor eax, dword [eax]
jg 0x475439
xor al, byte [eax]
add al, al
jne 0x4e544c
cmp dword [ecx], 0x7fffffff
mov eax, dword [eax]
add byte [esp + ecx*2 + 0x220003dc], al
add byte [edx + edx*8 + 0x1c70875], al
add dword [eax], eax
add byte [eax], al
mov eax, dword [esi]
mov ecx, dword [ebp - 0x1d]
add cl, cl
je 0x437866
mov dword [eax + 0x210], 0
jle 0x43785b
add byte [ebp + 0x10], dl
mov eax, dword [esi]
lea edx, [edx + 4]
add byte [eax], al
mov edi, dword [eax - 0x3fffdf0]
add bh, bh
inc eax
jge 0x437861
mov dword [eax + edi*4], ebx
mov eax, dword [esi]
push es
call [eax + eax]
add al, byte [eax]
add byte [ebx + 0x7501e9], al
sub ecx, 1
jne 0x437866
add byte [esi], cl
mov ebx, dword [ecx + 8]
test dword [edi + 0xf18400], ecx
add byte [eax], al
mov edi, dword [ecx]
cmp edi, dword [ecx + 0xe810]
jne 0x437964
add byte [eax], al
test edi, edi
jle 0x4378b4
lea ecx, [eax + eax - 0x7d]
mov eax, 0x104
add byte [eax], al
add cl, cl
cmp dword [eax + 0x104], 0
add byte [eax], al
leave
add byte [eax], al
add byte [ebx + 0x100e9], cl
add byte [ebx], bh
xor byte [ebx - 0x72ffff8b], cl
mov eax, 0xf7000000
add al, al
add al, 0x3b
xlatb
jl 0x43788e
xor eax, dword [eax]
add byte [ebp + 0x10], dl
test edi, edi
jle 0x43785a
add byte [ecx + 0x110], al
mov dword [ebp], eax
add byte [esi], al
lea ebx, [ebx + 0x590000]
cmp dword [eax - 0x104], 0xea
jne 0x437954
mov eax, 0x2000d441
imul ebx
sar edx, 7
mov eax, dword [eax]
add bl, ch
pop ds
add ebx, edx
mov ebp, ebp
add byte [ebx + 0x8b1055], cl
imul eax, dword [eax]
add al, dl
mov eax, dword [ebp + 8]
or dword [ecx], 0
mov dword [ebp + 0x10], edx
mov dword [ebp + 8], eax
add dword [eax], 0
jne 0x4378ce
test edx, edx
js 0x43796b
add byte [ecx + 4], al
lea ebx, [edx*4]
mov ecx, dword [ebx + eax]
test ecx, ecx
pop ds
add byte [ebp - 0x25], cl
add eax, dword [eax]
push 0x10
call fcn.00447929
add esp, 4
js 0x43792e
mov ecx, edi
push dword [ebp + 0xc]
mov dword [edi], 0
call fcn.0044331e
mov ecx, dword [esi]
mov ecx, dword [ecx + 4]
mov dword [eax], eax
add byte [ebx + 0x4418b0e], cl
ja 0x43794e
add ebx, dword [edi + 0x5e]
pop ebx
pop ebp
ret
mov eax, dword [eax]
add byte [ebp + 8], bl
cdq
idiv dword [ebx - 0xffa0]
mov ebx, eax
jmp 0x4378eb
xor eax, dword [eax]
add bh, ah
push ebp
mov ebp, esp
xor dword [eax + 0x64ec8300], 0x53
mov ebx, dword [ebp + 8]
add byte [eax], al
dec esp
and al, 0x24
push edi
mov ebp, dword [ecx - 0x74cf7500]
into
call fcn.00437c4e
mov eax, dword [esi + 8]
mov eax, dword [eax]
test byte [eax], al
and al, 0x10
mov eax, dword [ebx + 4]
mov esi, dword [eax]
add byte [eax], al
call fcn.00437c4e
rol byte [eax], cl
or byte [ebx + 0x438b0478], cl
add al, 0
add byte [ebx + ecx*4], al
into
call 0x44314e
mov eax, dword [esi + 8]
mov eax, dword [eax]
mov dword [eax], eax
add byte [eax], ah
mov eax, dword [ebx + 4]
mov edi, dword [ebp - 0x17317500]
mov dword [edx], eax
add byte [eax], al
add byte [eax], al
or byte [ebp + 0xe40244c], cl
add byte [eax + 4], dh
mov dword [esp + 0x20], esi
call fcn.004279d9
mov edx, dword [ebp + 8]
cmp al, byte [eax]
xor eax, eax
mov dword [esp + 0x30], ebx
mov al, byte [eax]
add byte [eax - 0x7cf0dbb4], cl
rol byte [eax], cl
add ecx, dword [edi]
or byte [esi + 0x3da], 0
add al, 0x8b
dec eax
or al, ch
insb byte es:[edi], dx
add byte [eax], al
add byte [ebx + 0x40c033d0], cl
add byte [eax], al
and al, 0x30
test dl, 2
push es
add byte [edx - 0x26], ch
add eax, dword [eax]
mov cl, al
and eax, dword [eax]
add byte [esp + 0xf], cl
mov dword [esp + esi], edx
test esi, esi
je 0x47548a
add dl, al
sub eax, ebx
je 0x467b12
sub eax, 1
jne 0x467a39
mov dword [esp + 0x23], ebx
add bh, bh
jle 0x437aa6
mov esi, dword [esp + 0x10]
add byte [eax], al
and al, 0x20
mov ecx, esi
push edi
lcall 1, 0xdbe81000
add byte [ebx + 0x24540000], cl
xor byte [ecx - 0x7b], bl
dec esi
add byte [eax + esi*4 - 0x74ffffff], al
inc esp
add byte [eax], al
mov ecx, edx
sub ecx, esi
shr dword [ebp + 0x7c89f900], 1
and al, 0x34
sub edi, eax
add byte [eax], al
cwde
add dword [eax], eax
add byte [eax + 0x15], dl
add byte [esp], ah
push edx
call fcn.00456b2c
add ah, al
or al, 0x85
ror byte [edi], 0x88
add dl, bl
add eax, dword [eax]
mov eax, dword [esp + 0x1c]
add byte [eax], al
and al, 0x14
lea ecx, [eax + eax]
rol byte [eax], cl
and al, 0x2c
add esi, ecx
test edi, edi
jg 0x437aa6
add byte [ebp + 8], bh
mov eax, dword [edi + 4]
add byte ds:[ebx + 0x199e8ce], cl
add byte [eax], al
add byte [eax], al
or byte [ebx - 0x16bb7700], cl
add byte [ebx + 0x308b0447], cl
mov ecx, esi
add byte [eax], al
add dword [eax], eax
add byte [ebx + 0x74005146], cl
and al, 0x14
mov edi, dword [eax + 4]
mov eax, dword [eax]
add al, ch
dec ebp
invalid
ret
call fcn.0047719e
add esp, 0xc
mov dword [ebp + ebp], ebx
lea ecx, [esp + 0x40]
mov dword [esp], ebx
add byte [esp + 0x2c], bl
call fcn.00469e11
cmp dword [esp + 0x34], 0
sldt word [eax]
add byte [eax], al
add byte [ebx + 0x2b00d744], cl
ret
in eax, 0x2b
popfd
adc edi, dword [eax]
pop esi
jmp 0xc6d170de
jl 0x4753fb
xchg edi, eax
xchg al, bl
mov ecx, 0xc7f86a9e
and dword [edx - 0x3aadb62e], esp
and dword [edi + 0x68], esp
sbb ebp, esp
inc esp
pop ss
xchg esi, eax
fidiv word [ebp - 0x70ffc08]
imul ebp, dword [esi - 0x4c], 0x7c6a74f
inc ebx
ror byte fs:[ebx], 0xaa
adc ecx, ebx
pop edx
cmp edi, dword [esi]
add ecx, dword [esi - 0x6b]
sub esp, esp
pop edx
or edx, dword [eax + esi*4 + 0x17c2784f]
pop ebp
mov byte [edx - 0x1f114340], bl
add al, bh
cwde
popal
lea esi, [esp + esi*2 - 0x63]
mov dh, 0x23
pop ebx
pop ebx
cmp al, 0x8c
add eax, 0x7c8d79e6
loop 0x475450
pop ebx
mov ah, ah
aaa
pop ds
iretd
dec edi
rol byte [ecx - 0x3f2111a6], cl
push ss
sub byte [eax - 0x540aeb42], 0x68
and byte [edi], cl
imul ebx, dword [esi], 0x582222b5
iretd