Function at 0x43e5b6
Capabilities:
Encode data using xor
Encrypt data using rc4 ksa
Packed with generic packer

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xe24
mov eax, dword [0x7c3824]
xor eax, esp
mov dword [esp + 0xe20], eax
lea ebx, [esp + 0xc20]
lea ebp, [esp + 0x20]
xor eax, eax
mov dword [esp + 0x1c], eax
push 0x200
push 0
push ebx
call fcn.005e2800
add esp, 0xc
cmp byte [esp + 0xe3c], 0
je 0x43e701
xorpd xmm0, xmm0
xorpd xmm1, xmm1
movsd xmm7, qword [0x614900]
movsd xmm4, qword [0x614908]
movsd xmm5, qword [0x612228]
movsd xmm6, qword [0x614910]
movapd xmm2, xmm1
mulsd xmm2, qword [0x6148e8]
mulsd xmm2, xmm1
movapd xmm3, xmm1
mulsd xmm3, xmm1
subsd xmm2, xmm3
movapd xmm3, xmm1
mulsd xmm3, qword [0x6148f0]
mulsd xmm3, xmm1
addsd xmm3, qword [0x6148f8]
divsd xmm2, xmm3
addsd xmm2, xmm0
movapd xmm3, xmm1
mulsd xmm3, xmm7
addsd xmm3, xmm2
movapd xmm0, xmm4
cmpltsd xmm0, xmm2
andpd xmm3, xmm0
andnpd xmm0, xmm2
orpd xmm0, xmm3
addsd xmm1, xmm5
ucomisd xmm6, xmm1
ja 0x43e625
xorpd xmm1, xmm1
ucomisd xmm1, xmm0
jbe 0x43e7fe
sbb al, 0x9d
adc bl, byte [esi - 0x5fe965e0]
adc al, 0x9e
adc al, 0xa3
adc eax, 0x189915a5
mov dword [0x961b9618], eax
sbb bl, byte [edi - 0x5fec64e9]
adc ebx, dword [edi - 0x61e363e4]
adc eax, 0x1ca419a4
mov eax, dword [0xa4119c17]
sbb eax, 0x139a209c
mov dword [0x9714a115], eax
push ss
mov eax, dword [0x9f1b9718]
sbb dword [edi - 0x60e363ec], ebx
aas
inc edx
pushal
push ebp
xor edi, dword [ecx + 0x4c]
dec ecx
popal
jnp 0x43e70e
xor byte [edi], dh
cmp al, 0x29
dec edx
jp 0x43e732
imul ecx, dword [ebx + 0x29], 0x34
inc edi
imul ebx, dword [eax + 0x48], 0x4e4f543b
sub edi, dword [edx - 0x17]
cmpsd dword [esi], dword es:[edi]
adc dword [eax], eax
add byte [esi + 0xf], ah
push edi
leave
xorpd xmm1, xmm1
xorpd xmm0, xmm0
movsd xmm7, qword [0x6148c8]
movsd xmm4, qword [0x6148d0]
dec eax
popal
add dl, dh
movups xmm4, xmmword [0x6148d0]
movsd xmm5, qword [0x6148d8]
movsd xmm6, qword [0x6148e0]
movapd xmm2, xmm1
mulsd xmm2, qword [0x6148c0]
mulsd xmm2, xmm1
dec eax
popal
add dl, dh
mulps xmm2, xmm1
movapd xmm3, xmm1
mulsd xmm3, xmm1
subsd xmm2, xmm3
movapd xmm3, xmm1
mulsd xmm3, qword [0x614738]
mulsd xmm3, xmm1
addsd xmm3, xmm7
divsd xmm2, xmm3
addsd xmm2, xmm0
movapd xmm3, xmm1
mulsd xmm3, xmm4
addsd xmm3, xmm2
movapd xmm0, xmm5
cmpltsd xmm0, xmm2
andpd xmm3, xmm0
andnpd xmm0, xmm2
orpd xmm0, xmm3
addsd xmm1, qword [0x612228]
ucomisd xmm6, xmm1
ja 0x43e729
xorpd xmm1, xmm1
ucomisd xmm1, xmm0
jbe 0x43eeb0
xor eax, 0x6f797d24
xor esp, dword [ebx + 0x2a]
jl 0x43e7ef
and al, 0x6d
dec edx
cmp al, 0x29
das
inc edi
sub esp, dword [ebx + 0x58]
popal
je 0x43e809
cmp eax, 0xb551b87e
push edx
mov esi, 0xbb51b651
dec esi
mov bh, 0x51
mov eax, 0xc25bc253
push ebx
mov ah, 0x53
mov ecx, 0xba59b84d
push ebx
mov ebx, 0xb956b953
push eax
mov ebp, 0xc351b95c
push esi
mov ch, 0x51
mov ebx, 0xb653bf56
push edi
mov edi, 0xc04ebc54
push esp
mov ch, 0x5c
mov bh, 0x53
mov edx, 0xc150bb54
pop esp
mov esi, 0xe95cc359
stosb byte es:[edi], al
adc byte [eax], al
add byte [ebp + 0x43e69a0d], cl
add byte [ecx], dh
shl byte [esi + 0xf], 0x6f
lea ecx, [0x43e69a]
xor eax, eax
movdqa xmm1, xmmword [0x612110]
or eax, 0x612110
movdqa xmm2, xmmword [0x612120]
movdqu xmmword [esp + eax + 0x420], xmm1
add eax, 0x10
paddb xmm1, xmm2
cmp eax, 0x100
jne 0x43e816
mov dword [esp + 0x14], ecx
lea eax, [0x43e6dc]
mov dword [esp + 4], eax
movapd xmm1, xmm0
movsd xmm2, qword [0x612130]
subsd xmm1, xmm2
cvttsd2si eax, xmm1
xor eax, 0x80000000
cvttsd2si ecx, xmm0
ucomisd xmm0, xmm2
cmovae ecx, eax
mov eax, ecx
shr eax, 0x18
mov dword [esp + 8], eax
mov dword [esp], ecx
shr ecx, 0x10
mov dword [esp + 0xc], ecx
mov ebp, 0xff
xor esi, esi
xor ebx, ebx
xor edx, edx
inc edx
cmp ebp, 2
jb 0x43e88d
xor edx, edx
inc edx
add edx, edx
inc edx
cmp edx, ebp
jb 0x43e886
mov edi, 0xc
cmp esi, 3
ja case.default.0x43e897
jmp dword [esi*4 + 0x6149c8]
movzx eax, bl
add eax, esp
add eax, 0x420
mov ecx, dword [esp]
jmp 0x43e8f1
movzx eax, bl
mov cl, byte [esp + eax + 0x420]
mov eax, dword [esp + 4]
add eax, esi
add eax, 0xfffffffc
jmp 0x43e8f1
movzx eax, bl
add eax, esp
add eax, 0x420
mov ecx, dword [esp]
mov cl, ch
jmp 0x43e8f1
movzx eax, bl
add eax, esp
add eax, 0x420
mov ecx, dword [esp + 0xc]
jmp 0x43e8f1
movzx eax, bl
add eax, esp
add eax, 0x420
mov ecx, dword [esp + 8]
add cl, byte [eax]
inc esi
movzx eax, cl
add cl, 0x24
cmp esi, 0x23
movzx ebx, cl
cmovbe ebx, eax
mov eax, 0
cmova esi, eax
movzx ecx, bl
mov eax, edx
and eax, ecx
dec edi
je 0x43e91f
cmp eax, ebp
ja 0x43e892
jmp 0x43e925
xor edx, edx
div ebp
mov eax, edx
cmp ebp, eax
je 0x43e953
mov dl, byte [esp + ebp + 0x420]
xor dl, byte [esp + eax + 0x420]
mov byte [esp + ebp + 0x420], dl
xor dl, byte [esp + eax + 0x420]
mov byte [esp + eax + 0x420], dl
xor byte [esp + ebp + 0x420], dl
dec ebp
jne 0x43e87b
movzx eax, byte [esp + 0x421]
mov dword [esp + 0xc], eax
mov edi, eax
mov bl, byte [esp + 0x425]
movzx eax, byte [esp + 0x427]
mov dword [esp], eax
movzx esi, byte [esp + ecx + 0x420]
mov ebp, dword [esp + 0x14]
mov al, byte [ebp]
mov ah, byte [ebp + 1]
movzx edx, byte [esp + esi + 0x420]
mov dword [esp + 0x10], edx
mov dword [esp + 8], esi
mov edx, edi
mov bh, byte [esp + edi + 0x420]
add bh, byte [esp + 0x423]
movzx edi, bh
mov cl, byte [esp + edi + 0x420]
mov byte [esp + esi + 0x420], cl
mov esi, dword [esp]
mov cl, byte [esp + esi + 0x420]
mov byte [esp + edi + 0x420], cl
mov ecx, edx
inc cl
movzx ecx, cl
mov dl, byte [esp + ecx + 0x420]
mov byte [esp + esi + 0x420], dl
mov edx, dword [esp + 0x10]
mov byte [esp + ecx + 0x420], dl
add ah, 0x6a
shl al, 4
add al, 0xf0
or al, ah
movzx ecx, byte [esp + edi + 0x420]
add ecx, edx
mov edi, edx
mov edx, 0xff
and ecx, edx
movzx edx, al
mov dword [esp + 4], edx
xor al, byte [esp + ecx + 0x420]
add bl, byte [esp + edi + 0x420]
movzx ecx, byte [esp + esi + 0x420]
mov edx, dword [esp + 8]
movzx edx, byte [esp + edx + 0x420]
add edx, ecx
movzx ecx, bl
movzx ecx, byte [esp + ecx + 0x420]
add ecx, edx
mov edx, 0xff
and ecx, edx
movzx ecx, byte [esp + ecx + 0x420]
xor al, byte [esp + ecx + 0x420]
mov cl, byte [ebp + 2]
mov dl, byte [ebp + 3]
mov byte [esp + 8], dl
mov edx, edi
add bh, dl
mov esi, dword [esp + 4]
movzx edx, byte [esp + esi + 0x420]
mov byte [esp], bh
movzx edi, bh
mov ch, byte [esp + edi + 0x420]
mov byte [esp + esi + 0x420], ch
movzx ebp, al
mov al, byte [esp + ebp + 0x420]
mov byte [esp + edi + 0x420], al
mov eax, dword [esp + 0xc]
add al, 2
movzx eax, al
mov ch, byte [esp + eax + 0x420]
mov byte [esp + ebp + 0x420], ch
mov byte [esp + eax + 0x420], dl
add bl, byte [esp + edx + 0x420]
movzx eax, byte [esp + ebp + 0x420]
movzx esi, byte [esp + esi + 0x420]
add esi, eax
mov byte [esp + 4], bl
movzx eax, bl
movzx eax, byte [esp + eax + 0x420]
add eax, esi
mov ch, byte [esp + 8]
add ch, 0x6a
shl cl, 4
add cl, 0xf0
or cl, ch
movzx esi, byte [esp + edi + 0x420]
mov dword [esp + 8], edx
add esi, edx
mov edx, 0xff
and esi, edx
mov ch, byte [esp + esi + 0x420]
xor ch, cl
and eax, edx
movzx eax, byte [esp + eax + 0x420]
xor ch, byte [esp + eax + 0x420]
mov byte [esp + 0x20], ch
mov eax, dword [esp + 0xc]
mov bh, al
add bh, 4
add al, 6
mov dword [esp + 0xc], eax
xor esi, esi
mov dl, byte [esp]
add dl, byte [esp + 8]
movzx edi, cl
mov eax, dword [esp + 0x14]
mov cl, byte [eax + esi*2 + 4]
mov al, byte [eax + esi*2 + 5]
mov byte [esp + 0x18], al
movzx eax, byte [esp + edi + 0x420]
mov dword [esp + 8], eax
mov byte [esp], dl
movzx ebp, dl
mov ah, byte [esp + ebp + 0x420]
mov byte [esp + edi + 0x420], ah
movzx edx, ch
mov ah, byte [esp + edx + 0x420]
mov byte [esp + ebp + 0x420], ah
mov byte [esp + 0x10], bh
dec bh
movzx ebx, bh
mov ah, byte [esp + ebx + 0x420]
mov byte [esp + edx + 0x420], ah
mov eax, dword [esp + 8]
mov byte [esp + ebx + 0x420], al
mov ch, byte [esp + 4]
add ch, byte [esp + eax + 0x420]
movzx edx, byte [esp + edx + 0x420]
movzx edi, byte [esp + edi + 0x420]
add edi, edx
mov byte [esp + 4], ch
movzx edx, ch
movzx edx, byte [esp + edx + 0x420]
add edx, edi
mov ebx, dword [esp + 0xc]
mov al, byte [esp + 0x18]
add al, 0x6a
shl cl, 4
add cl, 0xf0
or cl, al
movzx edi, byte [esp + ebp + 0x420]
add edi, dword [esp + 8]
mov ebp, 0xff
and edi, ebp
mov ch, byte [esp + edi + 0x420]
xor ch, cl
and edx, ebp
movzx edx, byte [esp + edx + 0x420]
xor ch, byte [esp + edx + 0x420]
mov byte [esp + esi + 0x21], ch
mov bh, byte [esp + 0x10]
inc bh
inc esi
mov edx, ebx
inc dl
mov dword [esp + 0xc], edx
cmp esi, 0xe
jne 0x43eb33
mov ah, bl
mov esi, dword [esp + 0x14]
mov bl, byte [esi + 0x20]
mov dl, byte [esi + 0x21]
add dl, 0x6a
shl bl, 4
add bl, 0xf0
or bl, dl
movzx edi, cl
movzx edx, byte [esp + edi + 0x420]
mov dword [esp + 0x18], edx
mov byte [esp + 0x10], bh
mov cl, bh
dec cl
mov byte [esp + 0xc], ah
mov al, byte [esp]
add al, byte [esp + 8]
mov byte [esp], al
movzx edx, al
mov bh, byte [esp + edx + 0x420]
mov byte [esp + edi + 0x420], bh
movzx ebp, ch
mov ch, byte [esp + ebp + 0x420]
mov byte [esp + edx + 0x420], ch
movzx ecx, cl
mov bh, byte [esp + ecx + 0x420]
mov byte [esp + ebp + 0x420], bh
mov eax, dword [esp + 0x18]
mov byte [esp + ecx + 0x420], al
mov cl, byte [esp + 4]
add cl, byte [esp + eax + 0x420]
mov bh, cl
movzx ecx, bl
mov dword [esp + 4], ecx
movzx ecx, byte [esp + edx + 0x420]
add ecx, eax
mov edx, 0xff
and ecx, edx
xor bl, byte [esp + ecx + 0x420]
movzx ecx, byte [esp + ebp + 0x420]
movzx edx, byte [esp + edi + 0x420]
add edx, ecx
movzx ecx, bh
mov ah, bh
movzx ecx, byte [esp + ecx + 0x420]
add ecx, edx
mov edx, 0xff
and ecx, edx
movzx ecx, byte [esp + ecx + 0x420]
xor bl, byte [esp + ecx + 0x420]
mov byte [esp + 0x2f], bl
mov cl, byte [esi + 0x22]
mov al, byte [esi + 0x23]
mov byte [esp + 8], al
mov esi, dword [esp + 4]
movzx edx, byte [esp + esi + 0x420]
mov al, byte [esp]
add al, byte [esp + 0x18]
mov byte [esp], al
movzx edi, al
mov bh, byte [esp + edi + 0x420]
mov byte [esp + esi + 0x420], bh
movzx ebx, bl
mov ch, byte [esp + ebx + 0x420]
mov byte [esp + edi + 0x420], ch
movzx ebp, byte [esp + 0x10]
mov al, byte [esp + ebp + 0x420]
mov byte [esp + ebx + 0x420], al
mov byte [esp + ebp + 0x420], dl
mov al, ah
add al, byte [esp + edx + 0x420]
movzx ebx, byte [esp + ebx + 0x420]
movzx esi, byte [esp + esi + 0x420]
add esi, ebx
mov byte [esp + 4], al
movzx ebx, al
movzx ebx, byte [esp + ebx + 0x420]
add ebx, esi
mov al, byte [esp + 8]
add al, 0x6a
shl cl, 4
add cl, 0xf0
or cl, al
movzx esi, byte [esp + edi + 0x420]
add esi, edx
mov edi, 0xff
and esi, edi
mov al, byte [esp + esi + 0x420]
xor al, cl
and ebx, edi
movzx esi, byte [esp + ebx + 0x420]
xor al, byte [esp + esi + 0x420]
mov byte [esp + 0x30], al
xor esi, esi
mov ah, byte [esp]
add ah, dl
movzx edi, cl
mov edx, dword [esp + 0x14]
mov cl, byte [edx + esi*2 + 0x24]
mov dl, byte [edx + esi*2 + 0x25]
mov byte [esp + 8], dl
movzx ebx, byte [esp + edi + 0x420]
mov byte [esp], ah
movzx ebp, ah
mov ah, byte [esp + ebp + 0x420]
mov byte [esp + edi + 0x420], ah
movzx eax, al
mov dl, byte [esp + eax + 0x420]
mov byte [esp + ebp + 0x420], dl
movzx edx, byte [esp + 0xc]
mov ch, byte [esp + edx + 0x420]
mov byte [esp + eax + 0x420], ch
mov byte [esp + edx + 0x420], bl
mov ch, byte [esp + 4]
add ch, byte [esp + ebx + 0x420]
movzx eax, byte [esp + eax + 0x420]
movzx edx, byte [esp + edi + 0x420]
add edx, eax
mov byte [esp + 4], ch
movzx eax, ch
movzx edi, byte [esp + eax + 0x420]
add edi, edx
mov al, byte [esp + 8]
add al, 0x6a
shl cl, 4
add cl, 0xf0
or cl, al
movzx eax, byte [esp + ebp + 0x420]
add eax, ebx
mov edx, 0xff
and eax, edx
mov al, byte [esp + eax + 0x420]
xor al, cl
and edi, edx
movzx edx, byte [esp + edi + 0x420]
xor al, byte [esp + edx + 0x420]
mov edx, ebx
mov byte [esp + esi + 0x31], al
inc byte [esp + 0xc]
inc esi
cmp esi, 0x10
jne 0x43edd1
jmp 0x43f898
lea edi, [0x43e7b7]
xor eax, eax
movdqa xmm1, xmmword [0x612110]
movdqa xmm2, xmmword [0x612120]
movdqu xmmword [esp + eax + 0x420], xmm1
add eax, 0x10
paddb xmm1, xmm2
cmp eax, 0x100
jne 0x43eec8
lea eax, [0x43e79e]
mov dword [esp + 4], eax
movapd xmm1, xmm0
movsd xmm2, qword [0x612130]
subsd xmm1, xmm2
cvttsd2si eax, xmm1
xor eax, 0x80000000
cvttsd2si ecx, xmm0
ucomisd xmm0, xmm2
cmovae ecx, eax
mov eax, ecx
shr eax, 0x18
mov dword [esp + 8], eax
mov dword [esp], ecx
shr ecx, 0x10
mov dword [esp + 0xc], ecx
mov ebp, 0xff
xor esi, esi
xor ebx, ebx
mov dword [esp + 0x14], edi
xor edx, edx
inc edx
cmp ebp, 2
jb 0x43ef3f
xor edx, edx
inc edx
add edx, edx
inc edx
cmp edx, ebp
jb 0x43ef38
mov edi, 0xc
cmp esi, 3
ja case.default.0x43ef49
jmp dword [esi*4 + 0x6149b8]
movzx eax, bl
add eax, esp
add eax, 0x420
mov ecx, dword [esp]
jmp 0x43efa3
movzx eax, bl
mov cl, byte [esp + eax + 0x420]
mov eax, dword [esp + 4]
add eax, esi
add eax, 0xfffffffc
jmp 0x43efa3
movzx eax, bl
add eax, esp
add eax, 0x420
mov ecx, dword [esp]
mov cl, ch
jmp 0x43efa3
movzx eax, bl
add eax, esp
add eax, 0x420
mov ecx, dword [esp + 0xc]
jmp 0x43efa3
movzx eax, bl
add eax, esp
add eax, 0x420
mov ecx, dword [esp + 8]
add cl, byte [eax]
inc esi
movzx eax, cl
add cl, 0x1d
cmp esi, 0x1c
movzx ebx, cl
cmovbe ebx, eax
mov eax, 0
cmova esi, eax
movzx ecx, bl
mov eax, edx
and eax, ecx
dec edi
je 0x43efd1
cmp eax, ebp
ja 0x43ef44
jmp 0x43efd7
xor edx, edx
div ebp
mov eax, edx
cmp ebp, eax
mov edi, dword [esp + 0x14]
je 0x43f009
mov dl, byte [esp + ebp + 0x420]
xor dl, byte [esp + eax + 0x420]
mov byte [esp + ebp + 0x420], dl
xor dl, byte [esp + eax + 0x420]
mov byte [esp + eax + 0x420], dl
xor byte [esp + ebp + 0x420], dl
dec ebp
jne 0x43ef2d
movzx edx, byte [esp + 0x421]
mov al, byte [esp + 0x425]
mov byte [esp], al
movzx ebp, byte [esp + 0x427]
movzx esi, byte [esp + ecx + 0x420]
mov al, byte [edi]
mov ah, byte [edi + 1]
movzx ebx, byte [esp + esi + 0x420]
mov ecx, edx
mov dword [esp + 0xc], edx
mov dl, byte [esp + edx + 0x420]
add dl, byte [esp + 0x423]
mov byte [esp + 4], dl
movzx edi, dl
mov dl, byte [esp + edi + 0x420]
mov byte [esp + esi + 0x420], dl
mov dl, byte [esp + ebp + 0x420]
mov byte [esp + edi + 0x420], dl
mov edx, ecx
inc dl
movzx edx, dl
mov cl, byte [esp + edx + 0x420]
mov byte [esp + ebp + 0x420], cl
mov byte [esp + edx + 0x420], bl
add ah, 0xb3
shl al, 4
add al, 0xc0
or al, ah
movzx ecx, byte [esp + edi + 0x420]
add ecx, ebx
mov edx, 0xff
and ecx, edx
movzx edi, al
xor al, byte [esp + ecx + 0x420]
mov ah, byte [esp]
add ah, byte [esp + ebx + 0x420]
mov byte [esp], ah
movzx ecx, byte [esp + ebp + 0x420]
movzx edx, byte [esp + esi + 0x420]
add edx, ecx
movzx ecx, ah
movzx ecx, byte [esp + ecx + 0x420]
add ecx, edx
mov edx, 0xff
and ecx, edx
movzx ecx, byte [esp + ecx + 0x420]
xor al, byte [esp + ecx + 0x420]
mov ecx, dword [esp + 0x14]
mov dl, byte [ecx + 2]
mov dh, byte [ecx + 3]
mov ah, byte [esp + 4]
add ah, bl
mov byte [esp + 4], ah
mov dword [esp + 8], edi
movzx ebx, byte [esp + edi + 0x420]
movzx esi, ah
mov ah, byte [esp + esi + 0x420]
mov byte [esp + edi + 0x420], ah
movzx edi, al
mov ch, byte [esp + edi + 0x420]
mov byte [esp + esi + 0x420], ch
mov ecx, dword [esp + 0xc]
mov ch, cl
add ch, 2
movzx ebp, ch
mov ch, byte [esp + ebp + 0x420]
mov byte [esp + edi + 0x420], ch
mov byte [esp + ebp + 0x420], bl
add dh, 0xb3
shl dl, 4
add dl, 0xc0
or dl, dh
movzx ecx, byte [esp + esi + 0x420]
add ecx, ebx
mov ebp, 0xff
and ecx, ebp
movzx esi, dl
xor dl, byte [esp + ecx + 0x420]
mov dh, byte [esp]
add dh, byte [esp + ebx + 0x420]
mov byte [esp], dh
movzx eax, byte [esp + edi + 0x420]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x420]
add ecx, eax
movzx eax, dh
movzx eax, byte [esp + eax + 0x420]
add eax, ecx
and eax, ebp
movzx eax, byte [esp + eax + 0x420]
xor dl, byte [esp + eax + 0x420]
mov byte [esp + 0x20], dl
mov eax, dword [esp + 0x14]
mov cl, byte [eax + 4]
mov al, byte [eax + 5]
mov byte [esp + 8], al
mov ch, byte [esp + 4]
add ch, bl
movzx eax, byte [esp + esi + 0x420]
mov byte [esp + 4], ch
movzx edi, ch
mov dh, byte [esp + edi + 0x420]
mov byte [esp + esi + 0x420], dh
movzx edx, dl
mov ch, byte [esp + edx + 0x420]
mov byte [esp + edi + 0x420], ch
mov ebx, dword [esp + 0xc]
mov ch, bl
add ch, 3
movzx ebp, ch
mov ch, byte [esp + ebp + 0x420]
mov byte [esp + edx + 0x420], ch
mov byte [esp + ebp + 0x420], al
mov ch, byte [esp]
add ch, byte [esp + eax + 0x420]
movzx edx, byte [esp + edx + 0x420]
movzx esi, byte [esp + esi + 0x420]
add esi, edx
mov byte [esp], ch
movzx edx, ch
movzx edx, byte [esp + edx + 0x420]
add edx, esi
mov ch, byte [esp + 8]
add ch, 0xb3
shl cl, 4
add cl, 0xc0
or cl, ch
movzx esi, byte [esp + edi + 0x420]
mov ebp, eax
add esi, eax
mov eax, 0xff
and esi, eax
mov ch, byte [esp + esi + 0x420]
xor ch, cl
and edx, eax
movzx edx, byte [esp + edx + 0x420]
xor ch, byte [esp + edx + 0x420]
mov byte [esp + 0x21], ch
mov edx, dword [esp + 0xc]
mov eax, edx
add al, 5
mov byte [esp + 0x10], al
add dl, 9
mov dword [esp + 0xc], edx
mov esi, 4
mov al, byte [esp + 4]
mov edx, ebp
add al, dl
movzx edi, cl
mov edx, dword [esp + 0x14]
mov cl, byte [edx + esi*2 - 2]
mov dl, byte [edx + esi*2 - 1]
mov byte [esp + 0x18], dl
movzx edx, byte [esp + edi + 0x420]
mov dword [esp + 8], edx
mov byte [esp + 4], al
movzx ebp, al
mov dh, byte [esp + ebp + 0x420]
mov byte [esp + edi + 0x420], dh
movzx ebx, ch
mov ch, byte [esp + ebx + 0x420]
mov byte [esp + ebp + 0x420], ch
mov ch, byte [esp + 0x10]
dec ch
movzx edx, ch
mov ch, byte [esp + edx + 0x420]
mov byte [esp + ebx + 0x420], ch
mov eax, dword [esp + 8]
mov byte [esp + edx + 0x420], al
mov ch, byte [esp]
add ch, byte [esp + eax + 0x420]
movzx eax, byte [esp + ebx + 0x420]
movzx edi, byte [esp + edi + 0x420]
add edi, eax
mov byte [esp], ch
movzx eax, ch
movzx eax, byte [esp + eax + 0x420]
add eax, edi
mov ebx, dword [esp + 0xc]
mov dl, byte [esp + 0x18]
add dl, 0xb3
shl cl, 4
add cl, 0xc0
or cl, dl
movzx edx, byte [esp + ebp + 0x420]
mov edi, dword [esp + 8]
mov ebp, edi
add edx, edi
mov edi, 0xff
and edx, edi
mov ch, byte [esp + edx + 0x420]
xor ch, cl
and eax, edi
movzx eax, byte [esp + eax + 0x420]
xor ch, byte [esp + eax + 0x420]
mov byte [esp + esi + 0x1e], ch
inc esi
inc byte [esp + 0x10]
mov eax, ebx
inc al
mov dword [esp + 0xc], eax
cmp esi, 0x10
jne 0x43f2ae
mov bh, bl
mov eax, dword [esp + 0x14]
mov bl, byte [eax + 0x1e]
mov byte [esp + 0xc], bh
mov bh, byte [eax + 0x1f]
add bh, 0xb3
shl bl, 4
add bl, 0xc0
or bl, bh
movzx edi, cl
movzx eax, byte [esp + edi + 0x420]
mov dword [esp + 0x18], eax
mov cl, byte [esp + 0x10]
dec cl
mov dh, byte [esp + 4]
mov eax, ebp
add dh, al
movzx esi, dh
mov bh, byte [esp + esi + 0x420]
mov byte [esp + edi + 0x420], bh
movzx ebp, ch
mov ch, byte [esp + ebp + 0x420]
mov byte [esp + esi + 0x420], ch
movzx eax, cl
mov bh, byte [esp + eax + 0x420]
mov byte [esp + ebp + 0x420], bh
mov ecx, dword [esp + 0x18]
mov byte [esp + eax + 0x420], cl
mov dl, byte [esp]
add dl, byte [esp + ecx + 0x420]
movzx eax, bl
mov dword [esp], eax
movzx eax, byte [esp + esi + 0x420]
add eax, ecx
mov ecx, 0xff
and eax, ecx
mov esi, 0xff
xor bl, byte [esp + eax + 0x420]
movzx eax, byte [esp + ebp + 0x420]
movzx ecx, byte [esp + edi + 0x420]
add ecx, eax
movzx eax, dl
movzx eax, byte [esp + eax + 0x420]
add eax, ecx
and eax, esi
movzx eax, byte [esp + eax + 0x420]
xor bl, byte [esp + eax + 0x420]
mov byte [esp + 0x2e], bl
mov eax, dword [esp + 0x14]
mov cl, byte [eax + 0x20]
mov al, byte [eax + 0x21]
mov byte [esp + 8], al
mov esi, dword [esp]
movzx eax, byte [esp + esi + 0x420]
add dh, byte [esp + 0x18]
mov byte [esp + 4], dh
movzx edi, dh
mov bh, byte [esp + edi + 0x420]
mov byte [esp + esi + 0x420], bh
movzx ebx, bl
mov ch, byte [esp + ebx + 0x420]
mov byte [esp + edi + 0x420], ch
movzx ebp, byte [esp + 0x10]
mov ch, byte [esp + ebp + 0x420]
mov byte [esp + ebx + 0x420], ch
mov byte [esp + ebp + 0x420], al
add dl, byte [esp + eax + 0x420]
movzx ebx, byte [esp + ebx + 0x420]
movzx esi, byte [esp + esi + 0x420]
add esi, ebx
mov byte [esp], dl
movzx ebx, dl
movzx ebx, byte [esp + ebx + 0x420]
add ebx, esi
mov dl, byte [esp + 8]
add dl, 0xb3
shl cl, 4
add cl, 0xc0
or cl, dl
movzx esi, byte [esp + edi + 0x420]
mov ebp, eax
add esi, eax
mov eax, 0xff
and esi, eax
mov ch, byte [esp + esi + 0x420]
xor ch, cl
and ebx, eax
movzx esi, byte [esp + ebx + 0x420]
xor ch, byte [esp + esi + 0x420]
mov byte [esp + 0x2f], ch
xor esi, esi
mov al, byte [esp + 4]
mov edx, ebp
add al, dl
movzx ebx, cl
mov edi, dword [esp + 0x14]
mov cl, byte [edi + esi*2 + 0x22]
mov dl, byte [edi + esi*2 + 0x23]
mov byte [esp + 0x10], dl
mov edx, ebx
mov dword [esp + 0x18], ebx
movzx edi, byte [esp + ebx + 0x420]
mov dword [esp + 8], edi
mov byte [esp + 4], al
movzx edi, al
mov bh, byte [esp + edi + 0x420]
mov byte [esp + edx + 0x420], bh
mov bl, byte [esp + 0xc]
mov bh, bl
add bh, 0xfe
movzx ebp, ch
mov ch, byte [esp + ebp + 0x420]
mov byte [esp + edi + 0x420], ch
movzx edx, bh
mov ch, byte [esp + edx + 0x420]
mov byte [esp + ebp + 0x420], ch
mov eax, dword [esp + 8]
mov byte [esp + edx + 0x420], al
mov ch, byte [esp]
add ch, byte [esp + eax + 0x420]
movzx eax, byte [esp + ebp + 0x420]
mov edx, dword [esp + 0x18]
movzx edx, byte [esp + edx + 0x420]
add edx, eax
mov byte [esp], ch
movzx eax, ch
movzx eax, byte [esp + eax + 0x420]
add eax, edx
mov dl, byte [esp + 0x10]
add dl, 0xb3
shl cl, 4
add cl, 0xc0
or cl, dl
movzx edx, byte [esp + edi + 0x420]
mov edi, dword [esp + 8]
mov ebp, edi
add edx, edi
mov edi, 0xff
and edx, edi
mov ch, byte [esp + edx + 0x420]
xor ch, cl
and eax, edi
movzx eax, byte [esp + eax + 0x420]
xor ch, byte [esp + eax + 0x420]
mov byte [esp + esi + 0x30], ch
inc esi
inc bl
mov byte [esp + 0xc], bl
cmp esi, 0xd
jne 0x43f546
movzx eax, cl
movzx edx, byte [esp + eax + 0x420]
mov dword [esp + 0x10], edx
mov esi, eax
mov eax, dword [esp + 0x14]
mov cl, byte [eax + 0x3c]
mov al, byte [eax + 0x3d]
mov byte [esp + 0x18], al
mov dl, byte [esp + 4]
mov eax, ebp
add dl, al
mov byte [esp + 4], dl
movzx eax, dl
mov dh, byte [esp + eax + 0x420]
mov byte [esp + esi + 0x420], dh
mov edi, esi
movzx ebx, ch
mov ch, byte [esp + ebx + 0x420]
mov byte [esp + eax + 0x420], ch
mov ch, byte [esp + 0xc]
add ch, 0xfe
movzx esi, ch
mov ch, byte [esp + esi + 0x420]
mov byte [esp + ebx + 0x420], ch
mov edx, dword [esp + 0x10]
mov byte [esp + esi + 0x420], dl
mov ch, byte [esp + 0x18]
add ch, 0xb3
shl cl, 4
add cl, 0xc0
or cl, ch
movzx eax, byte [esp + eax + 0x420]
add eax, edx
mov ebp, 0xff
and eax, ebp
movzx esi, cl
xor cl, byte [esp + eax + 0x420]
mov ch, byte [esp]
add ch, byte [esp + edx + 0x420]
mov byte [esp], ch
movzx eax, byte [esp + ebx + 0x420]
movzx edx, byte [esp + edi + 0x420]
add edx, eax
movzx eax, ch
movzx eax, byte [esp + eax + 0x420]
add eax, edx
and eax, ebp
movzx eax, byte [esp + eax + 0x420]
xor cl, byte [esp + eax + 0x420]
mov byte [esp + 0x3d], cl
mov edx, dword [esp + 0x14]
mov al, byte [edx + 0x3e]
mov dl, byte [edx + 0x3f]
movzx ebx, byte [esp + esi + 0x420]
mov ah, byte [esp + 4]
add ah, byte [esp + 0x10]
mov byte [esp + 4], ah
movzx edi, ah
mov ah, byte [esp + edi + 0x420]
mov byte [esp + esi + 0x420], ah
movzx ecx, cl
mov ah, byte [esp + ecx + 0x420]
mov byte [esp + edi + 0x420], ah
mov ah, byte [esp + 0xc]
dec ah
movzx ebp, ah
mov ah, byte [esp + ebp + 0x420]
mov byte [esp + ecx + 0x420], ah
mov byte [esp + ebp + 0x420], bl
add dl, 0xb3
shl al, 4
add al, 0xc0
or al, dl
movzx edx, byte [esp + edi + 0x420]
add edx, ebx
mov ebp, 0xff
and edx, ebp
movzx edi, al
xor al, byte [esp + edx + 0x420]
mov ah, byte [esp]
add ah, byte [esp + ebx + 0x420]
mov byte [esp], ah
movzx ecx, byte [esp + ecx + 0x420]
movzx edx, byte [esp + esi + 0x420]
add edx, ecx
movzx ecx, ah
movzx ecx, byte [esp + ecx + 0x420]
add ecx, edx
and ecx, ebp
movzx ecx, byte [esp + ecx + 0x420]
xor al, byte [esp + ecx + 0x420]
mov byte [esp + 0x3e], al
mov ecx, dword [esp + 0x14]
mov dl, byte [ecx + 0x40]
mov ah, byte [ecx + 0x41]
movzx ecx, byte [esp + edi + 0x420]
mov dh, byte [esp + 4]
add dh, bl
movzx esi, dh
mov dh, byte [esp + esi + 0x420]
mov byte [esp + edi + 0x420], dh
movzx ebx, al
mov al, byte [esp + ebx + 0x420]
mov byte [esp + esi + 0x420], al
movzx ebp, byte [esp + 0xc]
mov al, byte [esp + ebp + 0x420]
mov byte [esp + ebx + 0x420], al
mov byte [esp + ebp + 0x420], cl
mov al, byte [esp]
add al, byte [esp + ecx + 0x420]
movzx esi, byte [esp + esi + 0x420]
add esi, ecx
shl dl, 4
add dl, 0xc0
add ah, 0xb3
or ah, dl
mov ebp, 0xff
and esi, ebp
xor ah, byte [esp + esi + 0x420]
movzx ecx, byte [esp + ebx + 0x420]
movzx edx, byte [esp + edi + 0x420]
add edx, ecx
movzx ecx, al
movzx ecx, byte [esp + ecx + 0x420]
add ecx, edx
and ecx, ebp
movzx ecx, byte [esp + ecx + 0x420]
xor ah, byte [esp + ecx + 0x420]
mov byte [esp + 0x3f], ah
mov byte [esp + 0x40], 0
lea ebx, [esp + 0xc20]
lea ebp, [esp + 0x20]
push ebp
push ebx
call fcn.005fecc0
add esp, 8
xor esi, esi
push 0x800
push esi
lea edi, [esp + 0x428]
push edi
call fcn.005e2800
sub esp, 8
mov eax, dword [esp + 0xe58]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], ebx
mov dword [esp], edi
mov dword [esp + 4], 1
call fcn.00439810
add esp, 0x14
push 0x400
push esi
push ebp
call fcn.005e2800
add esp, 0xc
push ebp
call fcn.0043e10c
add esp, 4
mov edi, 0xc80
push edi
call fcn.005db443
add esp, 4
mov ebx, eax
push edi
push esi
push eax
call fcn.005e2800
add esp, 0xc
push ebp
push edi
push ebx
call fcn.005fedb8
add esp, 0xc
lea eax, [esp + 0x420]
push eax
push edi
push ebx
call fcn.005fedb8
add esp, 0xc
mov byte [esp + esi + 0x420], 0
inc esi
cmp esi, 0x800
jne 0x43f93c
mov esi, dword [esp + 0xe38]
mov ecx, esi
call fcn.0040fece
mov ecx, dword [esp + 0xe48]
push esi
push ebx
call fcn.0040fda6
test al, al
je 0x43fa0b
mov ecx, esi
call fcn.00402a08
mov ebp, eax
push ebx
call fcn.005db44c
add esp, 4
cmp ebp, 5
lea ebp, [esp + 0x20]
lea ebx, [esp + 0xc20]
jb 0x43fa1f
mov edi, ebx
mov ecx, esi
call fcn.0040fd9c
mov bl, 1
cmp byte [eax], 0x4d
jne 0x43f9d0
mov ecx, esi
call fcn.0040fd9c
cmp byte [eax + 1], 0x5a
jne 0x43f9d0
mov eax, dword [esp + 0xe40]
mov dword [eax], 0x65002e
mov word [eax + 8], 0
mov dword [eax + 4], 0x650078
xor ebx, ebx
mov ecx, esi
call fcn.0040fd9c
cmp byte [eax], 0xd0
jne 0x43fa03
mov ecx, esi
call fcn.0040fd9c
cmp byte [eax + 1], 0xcf
jne 0x43fa03
mov ecx, esi
call fcn.0040fd9c
cmp byte [eax + 2], 0x11
jne 0x43fa03
mov ecx, esi
call fcn.0040fd9c
cmp byte [eax + 3], 0xe0
je 0x43fa31
test bl, bl
mov ebx, edi
jne 0x43fa1f
jmp 0x43fa4b
push ebx
call fcn.005db44c
add esp, 4
lea ebx, [esp + 0xc20]
lea ebp, [esp + 0x20]
mov eax, dword [esp + 0x1c]
inc eax
cmp eax, 3
jne 0x43e5db
xor ebx, ebx
jmp 0x43fa4d
mov eax, dword [esp + 0xe40]
mov dword [eax], 0x6d002e
mov dword [eax + 4], 0x690073
mov word [eax + 8], 0
mov bl, 1
mov ecx, dword [esp + 0xe20]
xor ecx, esp
call fcn.005db451
mov eax, ebx
add esp, 0xe24
pop esi
pop edi
pop ebx
pop ebp
ret