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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0xb50
mov esi, dword [ebp + 8]
lea eax, [ebp - 0x18]
mov dword [eax - 4], esp
mov dword [eax + 8], 0xffffffff
mov dword [eax + 4], 0x43fab0
mov ecx, dword fs:[0]
mov dword [eax], ecx
mov dword fs:[0], eax
lea edi, [ebp - 0xb5c]
push 0x200
push 0
push edi
call fcn.005e2800
mov eax, esi
add esp, 0xc
cmp esi, 0x234
sete bl
jne 0x43c281
xorpd xmm0, xmm0
movsd xmm4, qword [0x614800]
movsd xmm5, qword [0x614808]
movsd xmm6, qword [0x6120f8]
movsd xmm7, qword [0x614810]
xorpd xmm3, xmm3
movapd xmm1, xmm3
mulsd xmm1, qword [0x6147f0]
mulsd xmm1, xmm3
movapd xmm2, xmm3
mulsd xmm2, xmm3
subsd xmm1, xmm2
movapd xmm2, xmm3
mulsd xmm2, qword [0x6147f8]
mulsd xmm2, xmm3
addsd xmm2, qword [0x612390]
divsd xmm1, xmm2
addsd xmm1, xmm0
movapd xmm2, xmm3
mulsd xmm2, xmm4
addsd xmm2, xmm1
movapd xmm0, xmm5
cmpltsd xmm0, xmm1
andpd xmm2, xmm0
andnpd xmm0, xmm1
orpd xmm0, xmm2
addsd xmm3, xmm6
ucomisd xmm7, xmm3
ja 0x43b8e9
xorpd xmm1, xmm1
ucomisd xmm1, xmm0
jbe 0x43b9bc
push esp
push ebp
jo 0x43b9a8
imul esi, dword [edi], 0x2e507b2d
outsb dx, byte [esi]
cmp cl, byte [ebp + 0x66]
xor eax, 0x54594523
push edx
inc edx
cmp ch, byte [eax]
js 0x43b9ab
das
cmp dh, byte [edi + 0x2f]
js 0x43b9b5
je 0x43b9b1
jbe 0x43b9b7
je 0x43b9b4
je 0x43b9bf
cmp byte [ecx], 0x7b
xor bh, byte [eax + 0x30]
jle 0x43b9bc
jne 0x43b9c2
jne 0x43b9c3
jbe 0x43b9c6
jns 0x43b9cb
jl 0x43b9d0
jnp 0x43b9ce
xor dword [eax], 0x39763776
jnp 0x43b9d1
jge 0x43b9dc
jp 0x43b9df
cmp eax, 0x347b2f7d
jge 0x43b9d3
jnp 0x43b9da
jg 0x43b9db
xor byte [esi + esi*2], 0x3d
jp 0x43b9e8
cmp eax, 0x337a3a7a
jp 0x43b9e3
xor dword [ecx], 0x317a3b81
xor dword [ecx + 0x7f317a3b], eax
jp 0x43b9e7
xor dword [edi - 0x17], edi
jg 0x43b9a1
jmp 0x43c26e
mov dl, 8
add byte [eax], al
mov byte [ebp - 0x40], bl
lea edx, [0x43b975]
movdqa xmm1, xmmword [0x612110]
mov ecx, 0xf660043
inc ebx
add byte [esi + 0xf], ah
movq mm1, qword [0x612110]
outsd dx, dword [esi]
or eax, 0x612110
popal
add byte [ecx], dh
xor eax, eax
movdqa xmm2, xmmword [0x612120]
shl byte [esi + 0xf], 0x6f
movq mm2, qword [0x612120]
outsd dx, dword [esi]
adc eax, 0x612120
and byte [ecx], ah
popal
add bl, dh
movq qword [ebp + eax - 0x85c], mm1
movdqu xmmword [ebp + eax - 0x85c], xmm1
mov word [0xfffff7a4], es
add eax, 0xfffff7a4
movsb byte es:[edi], byte [esi]
idiv edi
inc dword [ebx + 0xf6610c0]
cld
retf 0x3d
add eax, 0x10
paddb xmm1, xmm2
cmp eax, 0x100
add byte [ecx], al
add byte [eax], al
jne 0x43b9d7
movsd xmm1, qword [0x612130]
movapd xmm2, xmm0
subsd xmm2, xmm1
cvttsd2si eax, xmm2
lea ecx, [0x43b95a]
mov dword [ebp - 0x30], ecx
xor eax, 0x80000000
cvttsd2si ecx, xmm0
ucomisd xmm0, xmm1
cmovae ecx, eax
mov eax, ecx
shr eax, 0x18
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x24], ecx
shr ecx, 0x10
mov dword [ebp - 0x28], ecx
mov edi, 0xff
xor ebx, ebx
xor ecx, ecx
mov dword [ebp - 0x34], edx
xor edx, edx
inc edx
cmp edi, 2
jb 0x43ba4a
xor edx, edx
inc edx
add edx, edx
inc edx
cmp edx, edi
jb 0x43ba43
mov dword [ebp - 0x20], edi
mov edi, 0xc
cmp ecx, 3
ja case.default.0x43ba57
jmp dword [ecx*4 + 0x614968]
movzx eax, bl
lea esi, [eax + ebp]
add esi, 0xfffff7a4
mov eax, dword [ebp - 0x24]
jmp 0x43ba8f
movzx eax, bl
lea esi, [eax + ebp]
add esi, 0xfffff7a4
mov eax, dword [ebp - 0x28]
jmp 0x43ba8f
movzx eax, bl
lea esi, [eax + ebp]
add esi, 0xfffff7a4
mov eax, dword [ebp - 0x2c]
jmp 0x43bab6
movzx eax, bl
lea esi, [eax + ebp]
add esi, 0xfffff7a4
mov eax, dword [ebp - 0x24]
mov al, ah
jmp 0x43bab6
movzx eax, bl
mov al, byte [ebp + eax - 0x85c]
mov esi, dword [ebp - 0x30]
add esi, ecx
add esi, 0xfffffffc
add al, byte [esi]
inc ecx
movzx esi, al
add al, 0x1f
cmp ecx, 0x1e
mov ebx, 0
cmova ecx, ebx
movzx ebx, al
cmovbe ebx, esi
movzx esi, bl
mov eax, edx
and eax, esi
dec edi
je 0x43bae4
cmp eax, dword [ebp - 0x20]
ja 0x43ba52
jmp 0x43baeb
xor edx, edx
div dword [ebp - 0x20]
mov eax, edx
mov edi, dword [ebp - 0x20]
cmp edi, eax
mov edx, dword [ebp - 0x34]
je 0x43bb22
mov dl, byte [ebp + edi - 0x85c]
xor dl, byte [ebp + eax - 0x85c]
mov byte [ebp + edi - 0x85c], dl
xor dl, byte [ebp + eax - 0x85c]
mov byte [ebp + eax - 0x85c], dl
xor byte [ebp + edi - 0x85c], dl
mov edx, dword [ebp - 0x34]
dec edi
jne 0x43ba38
mov cl, byte [ebp - 0x85b]
mov al, byte [ebp - 0x857]
mov byte [ebp - 0x20], al
mov edi, edx
movzx edx, cl
mov ch, cl
mov byte [ebp - 0x2c], cl
movzx ebx, byte [ebp + esi - 0x85c]
mov cl, byte [edi]
mov al, byte [edi + 1]
mov byte [ebp - 0x28], al
mov dword [ebp - 0x24], edx
mov dl, byte [ebp + edx - 0x85c]
add dl, byte [ebp - 0x859]
movzx edi, dl
mov dh, byte [ebp + edi - 0x85c]
movzx esi, byte [ebp - 0x855]
mov dword [ebp - 0x38], ebx
movzx eax, byte [ebp + ebx - 0x85c]
mov dword [ebp - 0x30], eax
mov byte [ebp + ebx - 0x85c], dh
mov bl, byte [ebp + esi - 0x85c]
mov byte [ebp + edi - 0x85c], bl
mov bl, ch
inc bl
movzx ebx, bl
mov ch, byte [ebp + ebx - 0x85c]
mov byte [ebp + esi - 0x85c], ch
mov byte [ebp + ebx - 0x85c], al
mov ch, byte [ebp - 0x28]
add ch, 0x8c
shl cl, 4
add cl, 0x20
or cl, ch
movzx ebx, byte [ebp + edi - 0x85c]
add ebx, eax
mov edi, 0xff
and ebx, edi
mov edi, 0xff
movzx eax, cl
mov dword [ebp - 0x28], eax
xor cl, byte [ebp + ebx - 0x85c]
movzx esi, byte [ebp + esi - 0x85c]
mov eax, dword [ebp - 0x38]
movzx ebx, byte [ebp + eax - 0x85c]
add ebx, esi
mov al, byte [ebp - 0x20]
mov esi, dword [ebp - 0x30]
add al, byte [ebp + esi - 0x85c]
mov byte [ebp - 0x20], al
movzx esi, al
movzx esi, byte [ebp + esi - 0x85c]
add esi, ebx
and esi, edi
movzx esi, byte [ebp + esi - 0x85c]
xor cl, byte [ebp + esi - 0x85c]
add dl, byte [ebp - 0x30]
mov esi, dword [ebp - 0x34]
mov dh, byte [esi + 2]
mov ch, byte [esi + 3]
mov eax, dword [ebp - 0x28]
movzx esi, byte [ebp + eax - 0x85c]
mov dword [ebp - 0x30], esi
movzx esi, dl
mov bl, byte [ebp + esi - 0x85c]
mov byte [ebp + eax - 0x85c], bl
movzx ebx, cl
mov cl, byte [ebp + ebx - 0x85c]
mov byte [ebp + esi - 0x85c], cl
mov cl, byte [ebp - 0x2c]
add cl, 2
movzx edi, cl
mov cl, byte [ebp + edi - 0x85c]
mov byte [ebp + ebx - 0x85c], cl
mov eax, dword [ebp - 0x30]
mov byte [ebp + edi - 0x85c], al
add ch, 0x8c
shl dh, 4
add dh, 0x20
or dh, ch
movzx ecx, byte [ebp + esi - 0x85c]
add ecx, eax
mov esi, eax
mov eax, 0xff
and ecx, eax
movzx eax, dh
mov dword [ebp - 0x38], eax
xor dh, byte [ebp + ecx - 0x85c]
mov al, byte [ebp - 0x20]
add al, byte [ebp + esi - 0x85c]
mov byte [ebp - 0x20], al
movzx ecx, byte [ebp + ebx - 0x85c]
mov esi, dword [ebp - 0x28]
movzx esi, byte [ebp + esi - 0x85c]
add esi, ecx
movzx ecx, al
movzx ecx, byte [ebp + ecx - 0x85c]
add ecx, esi
mov eax, 0xff
and ecx, eax
movzx ecx, byte [ebp + ecx - 0x85c]
xor dh, byte [ebp + ecx - 0x85c]
add dl, byte [ebp - 0x30]
mov byte [ebp - 0x95c], dh
mov ecx, dword [ebp - 0x34]
mov ah, byte [ecx + 4]
mov bl, byte [ecx + 5]
mov edi, dword [ebp - 0x38]
movzx ecx, byte [ebp + edi - 0x85c]
mov byte [ebp - 0x30], dl
movzx esi, dl
mov dword [ebp - 0x28], esi
mov bh, byte [ebp + esi - 0x85c]
mov byte [ebp + edi - 0x85c], bh
movzx edx, dh
mov bh, byte [ebp + edx - 0x85c]
mov byte [ebp + esi - 0x85c], bh
mov al, byte [ebp - 0x2c]
add al, 3
movzx esi, al
mov bh, byte [ebp + esi - 0x85c]
mov byte [ebp + edx - 0x85c], bh
mov byte [ebp + esi - 0x85c], cl
movzx edx, byte [ebp + edx - 0x85c]
movzx edi, byte [ebp + edi - 0x85c]
add edi, edx
mov al, byte [ebp - 0x20]
add al, byte [ebp + ecx - 0x85c]
mov byte [ebp - 0x20], al
movzx esi, al
movzx edx, byte [ebp + esi - 0x85c]
add edx, edi
shl ah, 4
add ah, 0x20
add bl, 0x8c
or bl, ah
mov eax, dword [ebp - 0x28]
movzx esi, byte [ebp + eax - 0x85c]
add esi, ecx
mov eax, 0xff
and esi, eax
mov bh, byte [ebp + esi - 0x85c]
xor bh, bl
and edx, eax
movzx esi, byte [ebp + edx - 0x85c]
xor bh, byte [ebp + esi - 0x85c]
mov byte [ebp - 0x95b], bh
xor edx, edx
mov al, byte [ebp - 0x30]
add al, cl
movzx edi, bl
mov ecx, dword [ebp - 0x34]
mov esi, edx
mov bl, byte [ecx + edx*2 + 6]
mov dl, byte [ecx + edx*2 + 7]
mov dword [ebp - 0x38], edi
movzx ecx, byte [ebp + edi - 0x85c]
mov dword [ebp - 0x2c], ecx
mov byte [ebp - 0x30], al
movzx eax, al
mov dword [ebp - 0x28], eax
mov dh, byte [ebp + eax - 0x85c]
mov byte [ebp + edi - 0x85c], dh
movzx edi, bh
mov dh, byte [ebp + edi - 0x85c]
mov byte [ebp + eax - 0x85c], dh
mov ecx, dword [ebp - 0x24]
add ecx, esi
add ecx, 4
mov eax, 0xff
and ecx, eax
mov dh, byte [ebp + ecx - 0x85c]
mov byte [ebp + edi - 0x85c], dh
mov eax, dword [ebp - 0x2c]
mov byte [ebp + ecx - 0x85c], al
mov dh, byte [ebp - 0x20]
add dh, byte [ebp + eax - 0x85c]
movzx ecx, byte [ebp + edi - 0x85c]
mov eax, dword [ebp - 0x38]
movzx eax, byte [ebp + eax - 0x85c]
add eax, ecx
mov byte [ebp - 0x20], dh
movzx ecx, dh
movzx ecx, byte [ebp + ecx - 0x85c]
add ecx, eax
add dl, 0x8c
shl bl, 4
add bl, 0x20
or bl, dl
mov eax, dword [ebp - 0x28]
movzx eax, byte [ebp + eax - 0x85c]
mov edx, dword [ebp - 0x2c]
add eax, edx
mov edi, 0xff
and eax, edi
mov bh, byte [ebp + eax - 0x85c]
xor bh, bl
and ecx, edi
movzx eax, byte [ebp + ecx - 0x85c]
mov ecx, edx
xor bh, byte [ebp + eax - 0x85c]
mov byte [ebp + esi - 0x95a], bh
inc esi
mov edx, esi
cmp esi, 0xd
jne 0x43bdc2
mov esi, dword [ebp - 0x34]
mov al, byte [esi + 0x20]
mov ah, byte [esi + 0x21]
mov byte [ebp - 0x38], ah
movzx edi, bl
mov ah, byte [ebp - 0x30]
add ah, cl
movzx esi, ah
mov bl, byte [ebp + esi - 0x85c]
mov dword [ebp - 0x3c], edi
movzx ecx, byte [ebp + edi - 0x85c]
mov dword [ebp - 0x30], ecx
mov byte [ebp + edi - 0x85c], bl
movzx edi, bh
mov bl, byte [ebp + edi - 0x85c]
mov byte [ebp + esi - 0x85c], bl
mov dword [ebp - 0x28], edx
mov ecx, dword [ebp - 0x24]
lea ebx, [ecx + edx]
add ebx, 4
mov ecx, 0xff
and ebx, ecx
mov cl, byte [ebp + ebx - 0x85c]
mov byte [ebp + edi - 0x85c], cl
mov edx, dword [ebp - 0x30]
mov byte [ebp + ebx - 0x85c], dl
mov cl, byte [ebp - 0x38]
add cl, 0x8c
shl al, 4
add al, 0x20
or al, cl
movzx ecx, byte [ebp + esi - 0x85c]
mov ebx, edx
add ecx, edx
mov edx, 0xff
and ecx, edx
movzx edx, al
mov dword [ebp - 0x38], edx
xor al, byte [ebp + ecx - 0x85c]
mov dl, byte [ebp - 0x20]
add dl, byte [ebp + ebx - 0x85c]
mov byte [ebp - 0x20], dl
movzx ecx, byte [ebp + edi - 0x85c]
mov esi, dword [ebp - 0x3c]
movzx ebx, byte [ebp + esi - 0x85c]
add ebx, ecx
movzx ecx, dl
movzx ecx, byte [ebp + ecx - 0x85c]
add ecx, ebx
mov edx, 0xff
and ecx, edx
movzx ecx, byte [ebp + ecx - 0x85c]
xor al, byte [ebp + ecx - 0x85c]
mov byte [ebp - 0x94d], al
mov edi, dword [ebp - 0x34]
mov bh, byte [edi + 0x22]
add ah, byte [ebp - 0x30]
mov byte [ebp - 0x30], ah
mov cl, byte [edi + 0x23]
mov byte [ebp - 0x2c], cl
movzx esi, ah
mov ah, byte [ebp + esi - 0x85c]
mov ecx, dword [ebp - 0x38]
movzx edi, byte [ebp + ecx - 0x85c]
mov byte [ebp + ecx - 0x85c], ah
movzx eax, al
mov dword [ebp - 0x3c], eax
mov cl, byte [ebp + eax - 0x85c]
mov byte [ebp + esi - 0x85c], cl
mov edx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x28]
add ecx, edx
add ecx, 5
mov edx, 0xff
and ecx, edx
mov bl, byte [ebp + ecx - 0x85c]
mov byte [ebp + eax - 0x85c], bl
mov edx, edi
mov byte [ebp + ecx - 0x85c], dl
mov al, byte [ebp - 0x2c]
add al, 0x8c
shl bh, 4
add bh, 0x20
or bh, al
movzx ecx, byte [ebp + esi - 0x85c]
add ecx, edi
mov eax, edi
mov edx, 0xff
and ecx, edx
mov edi, 0xff
movzx edx, bh
mov dword [ebp - 0x2c], edx
xor bh, byte [ebp + ecx - 0x85c]
mov ecx, dword [ebp - 0x3c]
movzx esi, byte [ebp + ecx - 0x85c]
mov ecx, dword [ebp - 0x38]
movzx edx, byte [ebp + ecx - 0x85c]
add edx, esi
mov cl, byte [ebp - 0x20]
add cl, byte [ebp + eax - 0x85c]
mov byte [ebp - 0x20], cl
movzx ecx, cl
movzx ecx, byte [ebp + ecx - 0x85c]
add ecx, edx
and ecx, edi
movzx ecx, byte [ebp + ecx - 0x85c]
xor bh, byte [ebp + ecx - 0x85c]
mov byte [ebp - 0x94c], bh
mov ecx, dword [ebp - 0x34]
mov bl, byte [ecx + 0x24]
mov dh, byte [ebp - 0x30]
add dh, al
mov al, byte [ecx + 0x25]
mov byte [ebp - 0x38], al
mov byte [ebp - 0x30], dh
movzx edi, dh
mov dword [ebp - 0x3c], edi
mov al, byte [ebp + edi - 0x85c]
mov ecx, dword [ebp - 0x2c]
movzx edx, byte [ebp + ecx - 0x85c]
mov byte [ebp + ecx - 0x85c], al
movzx ecx, bh
mov bh, byte [ebp + ecx - 0x85c]
mov byte [ebp + edi - 0x85c], bh
mov esi, dword [ebp - 0x24]
mov eax, dword [ebp - 0x28]
lea edi, [esi + eax]
add edi, 6
mov esi, 0xff
and edi, esi
mov bh, byte [ebp + edi - 0x85c]
mov byte [ebp + ecx - 0x85c], bh
mov eax, edx
mov byte [ebp + edi - 0x85c], al
movzx ecx, byte [ebp + ecx - 0x85c]
mov esi, dword [ebp - 0x2c]
movzx esi, byte [ebp + esi - 0x85c]
add esi, ecx
mov dl, byte [ebp - 0x20]
add dl, byte [ebp + eax - 0x85c]
mov byte [ebp - 0x20], dl
movzx edi, dl
movzx ecx, byte [ebp + edi - 0x85c]
add ecx, esi
mov dl, byte [ebp - 0x38]
add dl, 0x8c
shl bl, 4
add bl, 0x20
or bl, dl
mov edx, dword [ebp - 0x3c]
movzx edi, byte [ebp + edx - 0x85c]
mov edx, eax
add edi, eax
mov eax, 0xff
and edi, eax
mov bh, byte [ebp + edi - 0x85c]
xor bh, bl
and ecx, eax
movzx edi, byte [ebp + ecx - 0x85c]
xor bh, byte [ebp + edi - 0x85c]
mov byte [ebp - 0x94b], bh
mov eax, dword [ebp - 0x24]
add eax, dword [ebp - 0x28]
add al, 7
mov dword [ebp - 0x24], eax
xor eax, eax
mov cl, byte [ebp - 0x30]
add cl, dl
movzx edi, bl
mov dword [ebp - 0x38], edi
mov edx, dword [ebp - 0x34]
mov esi, eax
mov bl, byte [edx + eax*2 + 0x26]
mov dl, byte [edx + eax*2 + 0x27]
movzx eax, byte [ebp + edi - 0x85c]
mov dword [ebp - 0x2c], eax
mov byte [ebp - 0x30], cl
movzx eax, cl
mov dword [ebp - 0x28], eax
mov dh, byte [ebp + eax - 0x85c]
mov byte [ebp + edi - 0x85c], dh
movzx edi, bh
mov dh, byte [ebp + edi - 0x85c]
mov byte [ebp + eax - 0x85c], dh
movzx ecx, byte [ebp - 0x24]
mov dh, byte [ebp + ecx - 0x85c]
mov byte [ebp + edi - 0x85c], dh
mov eax, dword [ebp - 0x2c]
mov byte [ebp + ecx - 0x85c], al
mov dh, byte [ebp - 0x20]
add dh, byte [ebp + eax - 0x85c]
movzx eax, byte [ebp + edi - 0x85c]
mov ecx, dword [ebp - 0x38]
movzx ecx, byte [ebp + ecx - 0x85c]
add ecx, eax
mov byte [ebp - 0x20], dh
movzx eax, dh
movzx eax, byte [ebp + eax - 0x85c]
add eax, ecx
add dl, 0x8c
shl bl, 4
add bl, 0x20
or bl, dl
mov ecx, dword [ebp - 0x28]
movzx ecx, byte [ebp + ecx - 0x85c]
mov edi, dword [ebp - 0x2c]
mov edx, edi
add ecx, edi
mov edi, 0xff
and ecx, edi
mov bh, byte [ebp + ecx - 0x85c]
xor bh, bl
and eax, edi
movzx eax, byte [ebp + eax - 0x85c]
xor bh, byte [ebp + eax - 0x85c]
mov byte [ebp + esi - 0x94a], bh
mov eax, dword [ebp - 0x24]
inc al
mov dword [ebp - 0x24], eax
inc esi
mov eax, esi
cmp esi, 0xe
jne 0x43c16f
mov byte [ebp - 0x93c], 0
lea edi, [ebp - 0xb5c]
mov bl, byte [ebp - 0x40]
lea eax, [ebp - 0x95c]
push eax
push edi
call fcn.005fecc0
add esp, 8
mov eax, dword [ebp + 8]
cmp eax, 0x235
jne 0x43cc32
xorpd xmm4, xmm4
movsd xmm5, qword [0x614820]
movsd xmm6, qword [0x614828]
movsd xmm7, qword [0x612160]
movsd xmm2, qword [0x614830]
xorpd xmm0, xmm0
movapd xmm1, xmm4
mulsd xmm1, qword [0x614818]
mulsd xmm1, xmm4
movapd xmm3, xmm4
mulsd xmm3, xmm4
subsd xmm1, xmm3
movapd xmm3, xmm4
mulsd xmm3, qword [0x612de0]
mulsd xmm3, xmm4
addsd xmm3, qword [0x614268]
divsd xmm1, xmm3
addsd xmm1, xmm0
movapd xmm3, xmm4
mulsd xmm3, xmm5
addsd xmm3, xmm1
movapd xmm0, xmm6
cmpltsd xmm0, xmm1
andpd xmm3, xmm0
andnpd xmm0, xmm1
orpd xmm0, xmm3
addsd xmm4, xmm7
ucomisd xmm2, xmm4
ja 0x43c2b4
xorpd xmm1, xmm1
ucomisd xmm1, xmm0
jbe 0x43c37e
imul esi, dword [eax], 0x69
sub ah, byte [ebx + esi*2 + 0x2d]
outsd dx, dword [esi]
pushal
sub bh, byte [esi + 0x66]
jl 0x43c368
cmp byte [edx + 0x7d], cl
inc eax
jge 0x43c385
jo 0x43c37e
jg 0x43c384
jge 0x43c38b
jae 0x43c390
jo 0x43c391
jns 0x43c387
jns 0x43c38d
jno 0x43c395
jle 0x43c394
jbe 0x43c396
jo 0x43c399
je 0x43c399
jp 0x43c3a3
jbe 0x43c39e
jp 0x43c3a4
ja 0x43c3a6
js 0x43c3a0
jne 0x43c3a9
jne 0x43c3a5
jb 0x43c3ae
jp 0x43c3a7
inc ebx
jle 0x43c3b2
jg 0x43c3b0
jns 0x43c3af
jp 0x43c3b9
jae 0x43c3b9
ja 0x43c3b0
jbe 0x43c3bd
js 0x43c3bc
jno 0x43c3b7
je 0x43c3bf
jb 0x43c363
lahf
or byte [eax], al
add byte [ebp + 0x43c33715], cl
add byte [esi + 0xf], ah
outsd dx, dword [esi]
lea edx, [0x43c337]
movdqa xmm1, xmmword [0x612110]
movq mm1, qword [0x612110]
or eax, 0x612110
add byte [ecx], dh
xor eax, eax
movdqa xmm2, xmmword [0x612120]
shl byte [esi + 0xf], 0x6f
outsd dx, dword [esi]
adc eax, 0x612120
popal
add bl, dh
movq qword [ebp + eax - 0x85c], mm1
movdqu xmmword [ebp + eax - 0x85c], xmm1
mov word [0xfffff7a4], es
inc dword [ebx + 0xf6610c0]
add eax, 0x10
paddb xmm1, xmm2
rcl byte [eax], 0x66
paddb mm1, mm2
cld
retf 0x3d
cmp eax, 0x100
add byte [ecx], al
add byte [eax], al
jne 0x43c396
movsd xmm1, qword [0x612130]
movups xmm1, xmmword [0x612130]
adc byte [0x612130], cl
or eax, 0x612130
and dword [ecx], esp
movapd xmm2, xmm0
sub al, dl
subsd xmm2, xmm1
sal edx, 1
cvttps2pi mm0, xmm2
cvttsd2si eax, xmm2
sub al, 0xc2
lea ecx, [0x43c325]
mov dword [ebp - 0x34], ecx
xor eax, 0x80000000
cvttsd2si ecx, xmm0
ucomisd xmm0, xmm1
cmovae ecx, eax
mov eax, ecx
shr eax, 0x18
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x24], ecx
shr ecx, 0x10
mov dword [ebp - 0x28], ecx
mov esi, 0xff
xor ecx, ecx
xor ebx, ebx
mov dword [ebp - 0x30], edx
xor edx, edx
inc edx
cmp esi, 2
jb 0x43c409
xor edx, edx
inc edx
add edx, edx
inc edx
cmp edx, esi
jb 0x43c402
mov dword [ebp - 0x20], esi
mov esi, 0xc
cmp ecx, 3
ja case.default.0x43c416
jmp dword [ecx*4 + 0x614978]
movzx eax, bl
add eax, ebp
add eax, 0xfffff7a4
mov ebx, dword [ebp - 0x24]
jmp 0x43c448
movzx eax, bl
add eax, ebp
add eax, 0xfffff7a4
mov ebx, dword [ebp - 0x28]
jmp 0x43c448
movzx eax, bl
add eax, ebp
add eax, 0xfffff7a4
mov ebx, dword [ebp - 0x2c]
jmp 0x43c46d
movzx eax, bl
add eax, ebp
add eax, 0xfffff7a4
mov ebx, dword [ebp - 0x24]
mov bl, bh
jmp 0x43c46d
movzx eax, bl
mov bl, byte [ebp + eax - 0x85c]
mov eax, dword [ebp - 0x34]
add eax, ecx
add eax, 0xfffffffc
add bl, byte [eax]
inc ecx
movzx eax, bl
add bl, 0x16
cmp ecx, 0x15
movzx ebx, bl
cmovbe ebx, eax
mov eax, 0
cmova ecx, eax
movzx edi, bl
mov eax, edx
and eax, edi
dec esi
je 0x43c49c
cmp eax, dword [ebp - 0x20]
ja 0x43c411
jmp 0x43c4a3
xor edx, edx
div dword [ebp - 0x20]
mov eax, edx
mov esi, dword [ebp - 0x20]
cmp esi, eax
mov edx, dword [ebp - 0x30]
je 0x43c4da
mov dl, byte [ebp + esi - 0x85c]
xor dl, byte [ebp + eax - 0x85c]
mov byte [ebp + esi - 0x85c], dl
xor dl, byte [ebp + eax - 0x85c]
mov byte [ebp + eax - 0x85c], dl
xor byte [ebp + esi - 0x85c], dl
mov edx, dword [ebp - 0x30]
dec esi
jne 0x43c3f7
mov ch, byte [ebp - 0x85b]
mov al, byte [ebp - 0x857]
mov byte [ebp - 0x20], al
mov esi, edx
movzx edx, ch
movzx eax, byte [ebp + edi - 0x85c]
mov cl, byte [esi]
mov bl, byte [esi + 1]
mov byte [ebp - 0x34], bl
mov dword [ebp - 0x44], edx
mov dl, byte [ebp + edx - 0x85c]
add dl, byte [ebp - 0x859]
mov byte [ebp - 0x24], dl
movzx edi, dl
mov dh, byte [ebp + edi - 0x85c]
mov dword [ebp - 0x28], edi
movzx ebx, byte [ebp - 0x855]
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x2c], eax
movzx ebx, byte [ebp + eax - 0x85c]
mov byte [ebp + eax - 0x85c], dh
mov eax, dword [ebp - 0x38]
mov dh, byte [ebp + eax - 0x85c]
mov byte [ebp + edi - 0x85c], dh
inc ch
movzx esi, ch
mov ch, byte [ebp + esi - 0x85c]
mov byte [ebp + eax - 0x85c], ch
mov byte [ebp + esi - 0x85c], bl
movzx esi, byte [ebp + eax - 0x85c]
mov eax, dword [ebp - 0x2c]
movzx edi, byte [ebp + eax - 0x85c]
add edi, esi
mov al, byte [ebp - 0x20]
add al, byte [ebp + ebx - 0x85c]
mov byte [ebp - 0x20], al
movzx esi, al
movzx edx, byte [ebp + esi - 0x85c]
add edx, edi
mov al, byte [ebp - 0x34]
add al, 0x90
shl cl, 4
or cl, al
mov eax, dword [ebp - 0x28]
movzx esi, byte [ebp + eax - 0x85c]
add esi, ebx
mov edi, 0xff
and esi, edi
mov ah, byte [ebp + esi - 0x85c]
xor ah, cl
and edx, edi
movzx esi, byte [ebp + edx - 0x85c]
xor ah, byte [ebp + esi - 0x85c]
xor esi, esi
mov edi, esi
mov al, byte [ebp - 0x24]
add al, bl
movzx ebx, cl
mov edx, dword [ebp - 0x30]
mov cl, byte [edx + esi*2 + 2]
mov dl, byte [edx + esi*2 + 3]
mov dword [ebp - 0x2c], esi
mov byte [ebp - 0x34], dl
mov byte [ebp - 0x24], al
movzx edx, al
mov al, byte [ebp + edx - 0x85c]
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x38], ebx
movzx esi, byte [ebp + ebx - 0x85c]
mov dword [ebp - 0x3c], esi
mov byte [ebp + ebx - 0x85c], al
movzx esi, ah
mov bl, byte [ebp + esi - 0x85c]
mov byte [ebp + edx - 0x85c], bl
mov ebx, dword [ebp - 0x44]
add ebx, edi
add ebx, 2
mov eax, 0xff
and ebx, eax
mov ch, byte [ebp + ebx - 0x85c]
mov byte [ebp + esi - 0x85c], ch
mov edx, dword [ebp - 0x3c]
mov byte [ebp + ebx - 0x85c], dl
mov ch, byte [ebp - 0x20]
add ch, byte [ebp + edx - 0x85c]
movzx eax, byte [ebp + esi - 0x85c]
mov esi, dword [ebp - 0x38]
movzx edi, byte [ebp + esi - 0x85c]
add edi, eax
mov byte [ebp - 0x20], ch
movzx eax, ch
movzx ebx, byte [ebp + eax - 0x85c]
add ebx, edi
mov al, byte [ebp - 0x34]
add al, 0x90
shl cl, 4
or cl, al
mov eax, dword [ebp - 0x28]
movzx eax, byte [ebp + eax - 0x85c]
mov esi, edx
add eax, edx
mov edx, 0xff
and eax, edx
mov ah, byte [ebp + eax - 0x85c]
xor ah, cl
and ebx, edx
movzx edx, byte [ebp + ebx - 0x85c]
mov ebx, esi
xor ah, byte [ebp + edx - 0x85c]
mov edx, dword [ebp - 0x2c]
mov byte [ebp + edx - 0x95c], ah
lea esi, [edx + 1]
cmp esi, 0xd
jne 0x43c5d5
mov edi, dword [ebp - 0x30]
mov dh, byte [edi + 0x1c]
mov al, byte [edi + 0x1d]
mov byte [ebp - 0x34], al
mov dl, byte [ebp - 0x24]
add dl, bl
movzx ecx, cl
mov dword [ebp - 0x2c], ecx
movzx ebx, dl
mov al, byte [ebp + ebx - 0x85c]
movzx edi, byte [ebp + ecx - 0x85c]
mov dword [ebp - 0x24], edi
mov byte [ebp + ecx - 0x85c], al
movzx edi, ah
mov ah, byte [ebp + edi - 0x85c]
mov byte [ebp + ebx - 0x85c], ah
mov eax, dword [ebp - 0x44]
lea ecx, [eax + esi]
add ecx, 2
mov eax, 0xff
and ecx, eax
mov ah, byte [ebp + ecx - 0x85c]
mov byte [ebp + edi - 0x85c], ah
mov eax, dword [ebp - 0x24]
mov byte [ebp + ecx - 0x85c], al
mov cl, byte [ebp - 0x34]
add cl, 0x90
shl dh, 4
or dh, cl
movzx ecx, byte [ebp + ebx - 0x85c]
add ecx, eax
mov ebx, eax
mov eax, 0xff
and ecx, eax
movzx eax, dh
mov dword [ebp - 0x34], eax
xor dh, byte [ebp + ecx - 0x85c]
mov al, byte [ebp - 0x20]
add al, byte [ebp + ebx - 0x85c]
movzx ecx, byte [ebp + edi - 0x85c]
mov ebx, dword [ebp - 0x2c]
movzx ebx, byte [ebp + ebx - 0x85c]
add ebx, ecx
movzx ecx, al
movzx ecx, byte [ebp + ecx - 0x85c]
add ecx, ebx
mov ebx, 0xff
and ecx, ebx
movzx ecx, byte [ebp + ecx - 0x85c]
xor dh, byte [ebp + ecx - 0x85c]
mov edi, dword [ebp - 0x44]
lea ecx, [edi + esi]
mov dword [ebp - 0x40], ecx
add esi, edi
add esi, 3
add dl, byte [ebp - 0x24]
mov byte [ebp - 0x94f], dh
mov ecx, dword [ebp - 0x30]
mov ah, byte [ecx + 0x1e]
mov cl, byte [ecx + 0x1f]
mov byte [ebp - 0x28], cl
mov byte [ebp - 0x24], dl
movzx ebx, dl
mov dl, byte [ebp + ebx - 0x85c]
mov edi, dword [ebp - 0x34]
movzx ecx, byte [ebp + edi - 0x85c]
mov dword [ebp - 0x2c], ecx
mov byte [ebp + edi - 0x85c], dl
movzx ecx, dh
mov dh, byte [ebp + ecx - 0x85c]
mov byte [ebp + ebx - 0x85c], dh
mov edx, 0xff
and esi, edx
mov dh, byte [ebp + esi - 0x85c]
mov byte [ebp + ecx - 0x85c], dh
mov edx, dword [ebp - 0x2c]
mov byte [ebp + esi - 0x85c], dl
movzx esi, byte [ebp + ecx - 0x85c]
movzx ecx, byte [ebp + edi - 0x85c]
add ecx, esi
add al, byte [ebp + edx - 0x85c]
mov byte [ebp - 0x20], al
movzx esi, al
movzx esi, byte [ebp + esi - 0x85c]
add esi, ecx
mov al, byte [ebp - 0x28]
add al, 0x90
shl ah, 4
or ah, al
movzx ebx, byte [ebp + ebx - 0x85c]
add ebx, edx
mov ecx, edx
mov edx, 0xff
and ebx, edx
mov edi, 0xff
mov dh, byte [ebp + ebx - 0x85c]
mov ebx, ecx
xor dh, ah
and esi, edi
movzx esi, byte [ebp + esi - 0x85c]
xor dh, byte [ebp + esi - 0x85c]
mov byte [ebp - 0x94e], dh
mov dword [ebp - 0x34], 0
mov al, byte [ebp - 0x24]
add al, bl
movzx esi, ah
mov ecx, dword [ebp - 0x30]
mov edi, dword [ebp - 0x34]
mov ah, byte [ecx + edi*2 + 0x20]
mov cl, byte [ecx + edi*2 + 0x21]
mov byte [ebp - 0x28], cl
movzx ecx, byte [ebp + esi - 0x85c]
mov dword [ebp - 0x2c], ecx
mov ebx, esi
mov dword [ebp - 0x3c], esi
mov byte [ebp - 0x24], al
movzx esi, al
mov dl, byte [ebp + esi - 0x85c]
mov dword [ebp - 0x38], esi
mov byte [ebp + ebx - 0x85c], dl
movzx ebx, dh
mov cl, byte [ebp + ebx - 0x85c]
mov byte [ebp + esi - 0x85c], cl
mov ecx, dword [ebp - 0x40]
add ecx, edi
add ecx, 4
mov edx, 0xff
and ecx, edx
mov al, byte [ebp + ecx - 0x85c]
mov byte [ebp + ebx - 0x85c], al
mov edx, dword [ebp - 0x2c]
mov byte [ebp + ecx - 0x85c], dl
mov al, byte [ebp - 0x20]
add al, byte [ebp + edx - 0x85c]
mov esi, edx
movzx ecx, byte [ebp + ebx - 0x85c]
mov edx, dword [ebp - 0x3c]
movzx edx, byte [ebp + edx - 0x85c]
mov ebx, esi
add edx, ecx
mov byte [ebp - 0x20], al
movzx ecx, al
movzx ecx, byte [ebp + ecx - 0x85c]
add ecx, edx
mov al, byte [ebp - 0x28]
add al, 0x90
shl ah, 4
or ah, al
mov edx, dword [ebp - 0x38]
movzx edx, byte [ebp + edx - 0x85c]
add edx, esi
mov esi, 0xff
and edx, esi
mov dh, byte [ebp + edx - 0x85c]
xor dh, ah
and ecx, esi
movzx ecx, byte [ebp + ecx - 0x85c]
xor dh, byte [ebp + ecx - 0x85c]
mov byte [ebp + edi - 0x94d], dh
inc edi
mov dword [ebp - 0x34], edi
cmp edi, 0xe
jne 0x43c890
mov al, byte [ebp - 0x24]
add al, bl
mov byte [ebp - 0x24], al
movzx ebx, ah
mov esi, dword [ebp - 0x30]
mov cl, byte [esi + 0x3c]
mov dl, byte [esi + 0x3d]
mov byte [ebp - 0x28], dl
movzx edi, al
mov ch, byte [ebp + edi - 0x85c]
mov eax, ebx
mov dword [ebp - 0x2c], ebx
movzx ebx, byte [ebp + ebx - 0x85c]
mov byte [ebp + eax - 0x85c], ch
movzx esi, dh
mov ch, byte [ebp + esi - 0x85c]
mov byte [ebp + edi - 0x85c], ch
mov edx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x40]
add eax, edx
add eax, 4
mov edx, 0xff
and eax, edx
mov ch, byte [ebp + eax - 0x85c]
mov byte [ebp + esi - 0x85c], ch
mov edx, ebx
mov byte [ebp + eax - 0x85c], dl
mov al, byte [ebp - 0x28]
add al, 0x90
shl cl, 4
or cl, al
movzx eax, byte [ebp + edi - 0x85c]
add eax, ebx
mov edi, 0xff
and eax, edi
mov ebx, 0xff
movzx edi, cl
mov dword [ebp - 0x28], edi
xor cl, byte [ebp + eax - 0x85c]
mov ch, byte [ebp - 0x20]
add ch, byte [ebp + edx - 0x85c]
mov edi, edx
mov byte [ebp - 0x20], ch
movzx eax, byte [ebp + esi - 0x85c]
mov edx, dword [ebp - 0x2c]
movzx edx, byte [ebp + edx - 0x85c]
add edx, eax
movzx eax, ch
movzx eax, byte [ebp + eax - 0x85c]
add eax, edx
and eax, ebx
movzx eax, byte [ebp + eax - 0x85c]
xor cl, byte [ebp + eax - 0x85c]
mov ch, byte [ebp - 0x24]
mov eax, edi
add ch, al
mov byte [ebp - 0x24], ch
mov byte [ebp - 0x93f], cl
mov edx, dword [ebp - 0x30]
mov ah, byte [edx + 0x3e]
mov al, byte [edx + 0x3f]
movzx edx, ch
mov ch, byte [ebp + edx - 0x85c]
mov esi, dword [ebp - 0x28]
movzx edi, byte [ebp + esi - 0x85c]
mov dword [ebp - 0x38], edi
mov byte [ebp + esi - 0x85c], ch
movzx edi, cl
mov cl, byte [ebp + edi - 0x85c]
mov byte [ebp + edx - 0x85c], cl
mov ecx, dword [ebp - 0x40]
mov esi, dword [ebp - 0x34]
add ecx, esi
add ecx, 5
mov esi, 0xff
and ecx, esi
mov bl, byte [ebp + ecx - 0x85c]
mov byte [ebp + edi - 0x85c], bl
mov ebx, dword [ebp - 0x38]
mov byte [ebp + ecx - 0x85c], bl
add al, 0x90
shl ah, 4
or ah, al
movzx edx, byte [ebp + edx - 0x85c]
mov ecx, ebx
add edx, ebx
mov ebx, 0xff
and edx, ebx
movzx esi, ah
mov dword [ebp - 0x2c], esi
xor ah, byte [ebp + edx - 0x85c]
movzx edx, byte [ebp + edi - 0x85c]
mov esi, dword [ebp - 0x28]
movzx edi, byte [ebp + esi - 0x85c]
add edi, edx
mov al, byte [ebp - 0x20]
add al, byte [ebp + ecx - 0x85c]
mov byte [ebp - 0x20], al
movzx edx, al
movzx edx, byte [ebp + edx - 0x85c]
add edx, edi
and edx, ebx
movzx edx, byte [ebp + edx - 0x85c]
xor ah, byte [ebp + edx - 0x85c]
mov bh, byte [ebp - 0x24]
add bh, cl
mov ecx, dword [ebp - 0x40]
mov edx, dword [ebp - 0x34]
add edx, ecx
add edx, 6
mov byte [ebp - 0x93e], ah
mov ecx, dword [ebp - 0x30]
mov al, byte [ecx + 0x40]
mov bl, byte [ecx + 0x41]
movzx esi, bh
mov bh, byte [ebp + esi - 0x85c]
mov edi, dword [ebp - 0x2c]
movzx ecx, byte [ebp + edi - 0x85c]
mov byte [ebp + edi - 0x85c], bh
movzx edi, ah
mov dword [ebp - 0x24], edi
mov ah, byte [ebp + edi - 0x85c]
mov byte [ebp + esi - 0x85c], ah
mov edi, 0xff
and edx, edi
mov ah, byte [ebp + edx - 0x85c]
mov edi, dword [ebp - 0x24]
mov byte [ebp + edi - 0x85c], ah
mov byte [ebp + edx - 0x85c], cl
mov ah, byte [ebp - 0x20]
add ah, byte [ebp + ecx - 0x85c]
movzx edx, byte [ebp + esi - 0x85c]
add edx, ecx
add bl, 0x90
shl al, 4
or al, bl
mov esi, 0xff
and edx, esi
xor al, byte [ebp + edx - 0x85c]
movzx ecx, byte [ebp + edi - 0x85c]
mov edx, dword [ebp - 0x2c]
movzx edx, byte [ebp + edx - 0x85c]
add edx, ecx
movzx ecx, ah
movzx ecx, byte [ebp + ecx - 0x85c]
add ecx, edx
and ecx, esi
movzx ecx, byte [ebp + ecx - 0x85c]
xor al, byte [ebp + ecx - 0x85c]
mov byte [ebp - 0x93d], al
mov byte [ebp - 0x93c], 0
lea edi, [ebp - 0xb5c]
lea eax, [ebp - 0x95c]
push eax
push edi
call fcn.005fecc0
add esp, 8
mov bl, 1
mov eax, dword [ebp + 8]
cmp eax, 0x237
mov byte [ebp - 0x40], bl
je 0x43cd41
cmp eax, 0x236
jne 0x43df51
xorpd xmm4, xmm4
movsd xmm5, qword [0x614878]
movsd xmm6, qword [0x614880]
movsd xmm7, qword [0x612160]
movsd xmm2, qword [0x614888]
xorpd xmm0, xmm0
movapd xmm1, xmm4
mulsd xmm1, qword [0x614860]
or eax, 0x614860
mulsd xmm1, xmm4
mulps xmm1, xmm4
movapd xmm3, xmm4
mulsd xmm3, xmm4
subsd xmm1, xmm3
movapd xmm3, xmm4
movaps xmm3, xmm4
sub ah, bl
mulsd xmm3, qword [0x614868]
mulsd xmm3, xmm4
addsd xmm3, qword [0x614870]
addps xmm3, xmmword [0x614870]
sbb eax, 0x614870
jo 0x43cced
popal
add dl, dh
divps xmm1, xmm3
divsd xmm1, xmm3
addsd xmm1, xmm0
addps xmm1, xmm0
pop eax
enter 0xf66, 0x28
movapd xmm3, xmm4
mulsd xmm3, xmm5
fdivr st(2), st(0)
mulps xmm3, xmm5
addsd xmm3, xmm1
movapd xmm0, xmm6
cmpltsd xmm0, xmm1
andpd xmm3, xmm0
andnpd xmm0, xmm1
orpd xmm0, xmm3
addsd xmm4, xmm7
ucomisd xmm2, xmm4
ja 0x43cc73
xorpd xmm1, xmm1
ucomisd xmm1, xmm0
jbe 0x43ce42
mov cl, bl
mov ecx, ebx
xchg edx, eax
loop 0x43cc7a
fcom qword [ecx - 0x771a7925]
salc
xchg ebx, eax
jecxz 0x43cc80
xlatb
mov esp, esp
mov esp, esp
mov ebx, esp
mov esi, ebx
xchg ecx, eax
loopne 0x43cc91
loop 0x43cc90
fcom dword [ebx - 0x731b7927]
jecxz 0x43cca2
loop 0x43cca0
loope 0x43cca3
fmul dword [ecx - 0x711b761e]
loopne 0x43ccad
loope 0x43ccac
fld qword [edi - 0x6c237323]
in eax, 0x84
loop 0x43ccae
jecxz 0x43ccb2
fimul dword [esi + 0x4a]
cmp bl, byte [edx + 0x22]
pop edi
jno 0x43cd64
dec edi
dec edx
jno 0x43cd98
pop ebx
insd dword es:[edi], dx
bound ebp, qword [ebx]
dec edi
jmp 0x43df3a
xorpd xmm4, xmm4
movsd xmm5, qword [0x614848]
movsd xmm6, qword [str._np]
movsd xmm7, qword [0x612160]
movsd xmm2, qword [0x614858]
xorpd xmm0, xmm0
add byte [esi + 0xf], ah
push edi
shl byte [esi + 0xf], 0x28
int3
movapd xmm1, xmm4
mulsd xmm1, qword [0x614838]
mulsd xmm1, xmm4
movapd xmm3, xmm4
mulsd xmm3, xmm4
subsd xmm1, xmm3
movapd xmm3, xmm4
mulsd xmm3, qword [0x614768]
mulsd xmm3, xmm4
addsd xmm3, qword [0x614840]
sbb eax, 0x614840
divsd xmm1, xmm3
addsd xmm1, xmm0
movapd xmm3, xmm4
mulsd xmm3, xmm5
addsd xmm3, xmm1
movapd xmm0, xmm6
cmpltsd xmm0, xmm1
andpd xmm3, xmm0
andnpd xmm0, xmm1
orpd xmm0, xmm3
addsd xmm4, xmm7
ucomisd xmm2, xmm4
ja 0x43cd69
xorpd xmm1, xmm1
ucomisd xmm1, xmm0
jbe 0x43d5db
jnp 0x43ce22
xor esi, dword [ecx + 0x74]
pop ebp
pop ebp
push ebp
inc esi
push esp
inc edx
insb byte es:[edi], dx
cmp eax, 0x3220445a
dec eax
inc ebp
sub word fs:[edi + 0x78], dx
dec ecx
and ebp, dword [ebp + 0x25]
sbb esp, dword [ecx + 0x23]
arpl word [0x22591d63], bx
pop eax
sbb eax, 0x235b235e
pop ss
sbb ah, byte gs:[ebx + 0x22]
pop ds
pop esi
sbb byte [edx + 0x16], ah
pushal
pop ds
pop ebp
and bl, byte [edi + 0x20]
pop ebx
and al, 0x62
sbb dword [edi + 0x21], ebx
pop ebp
pop ds
pop ss
pop ebx
push ss
pop eax
sbb bl, byte [edx + 0x16]
arpl word [ebx], bx
sbb bl, byte fs:[ebx + 0x19]
and esp, dword fs:[esi + 0x23]
bound ebx, qword [eax]
arpl word [esi], dx
pop ecx
push ss
pop ebx
jmp 0x43df3a
lea ecx, [0x43cce8]
movdqa xmm1, xmmword [0x612110]
xor eax, eax
movdqa xmm2, xmmword [0x612120]
movdqu xmmword [ebp + eax - 0x85c], xmm1
add eax, 0x10
paddb xmm1, xmm2
cmp eax, 0x100
jne 0x43ce5a
mov dword [ebp - 0x28], ecx
movsd xmm1, qword [0x612130]
movapd xmm2, xmm0
subsd xmm2, xmm1
cvttsd2si eax, xmm2
lea ecx, [0x43cd2a]
mov dword [ebp - 0x30], ecx
xor eax, 0x80000000
cvttsd2si ecx, xmm0
ucomisd xmm0, xmm1
cmovae ecx, eax
mov eax, ecx
shr eax, 0x18
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x24], ecx
shr ecx, 0x10
mov dword [ebp - 0x2c], ecx
mov esi, 0xff
xor ecx, ecx
xor ebx, ebx
xor edx, edx
inc edx
cmp esi, 2
jb 0x43cecd
xor edx, edx
inc edx
add edx, edx
inc edx
cmp edx, esi
jb 0x43cec6
mov dword [ebp - 0x20], esi
mov esi, 0xc
cmp ecx, 3
ja case.default.0x43ceda
jmp dword [ecx*4 + 0x614998]
movzx eax, bl
add eax, ebp
add eax, 0xfffff7a4
mov ebx, dword [ebp - 0x24]
jmp 0x43cf0c
movzx eax, bl
add eax, ebp
add eax, 0xfffff7a4
mov ebx, dword [ebp - 0x2c]
jmp 0x43cf0c
movzx eax, bl
add eax, ebp
add eax, 0xfffff7a4
mov ebx, dword [ebp - 0x34]
jmp 0x43cf31
movzx eax, bl
add eax, ebp
add eax, 0xfffff7a4
mov ebx, dword [ebp - 0x24]
mov bl, bh
jmp 0x43cf31
movzx eax, bl
mov bl, byte [ebp + eax - 0x85c]
mov eax, dword [ebp - 0x30]
add eax, ecx
add eax, 0xfffffffc
add bl, byte [eax]
inc ecx
movzx eax, bl
add bl, 0x16
cmp ecx, 0x15
movzx ebx, bl
cmovbe ebx, eax
mov eax, 0
cmova ecx, eax
movzx edi, bl
mov eax, edx
and eax, edi
dec esi
je 0x43cf60
cmp eax, dword [ebp - 0x20]
ja 0x43ced5
jmp 0x43cf67
xor edx, edx
div dword [ebp - 0x20]
mov eax, edx
mov esi, dword [ebp - 0x20]
cmp esi, eax
je 0x43cf98
mov dl, byte [ebp + esi - 0x85c]
xor dl, byte [ebp + eax - 0x85c]
mov byte [ebp + esi - 0x85c], dl
xor dl, byte [ebp + eax - 0x85c]
mov byte [ebp + eax - 0x85c], dl
xor byte [ebp + esi - 0x85c], dl
dec esi
jne 0x43cebb
mov dl, byte [ebp - 0x85b]
mov al, byte [ebp - 0x857]
mov byte [ebp - 0x20], al
movzx esi, dl
movzx ebx, byte [ebp + edi - 0x85c]
mov edi, dword [ebp - 0x28]
mov cl, byte [edi]
mov dword [ebp - 0x30], esi
mov ah, byte [ebp + esi - 0x85c]
add ah, byte [ebp - 0x859]
mov al, byte [edi + 1]
mov byte [ebp - 0x34], al
mov byte [ebp - 0x24], ah
movzx edi, ah
mov dh, byte [ebp + edi - 0x85c]
movzx esi, byte [ebp - 0x855]
mov eax, ebx
movzx ebx, byte [ebp + ebx - 0x85c]
mov byte [ebp + eax - 0x85c], dh
mov dh, byte [ebp + esi - 0x85c]
mov byte [ebp + edi - 0x85c], dh
inc dl
movzx edx, dl
mov ch, byte [ebp + edx - 0x85c]
mov byte [ebp + esi - 0x85c], ch
mov byte [ebp + edx - 0x85c], bl
movzx edx, byte [ebp + esi - 0x85c]
movzx esi, byte [ebp + eax - 0x85c]
add esi, edx
mov al, byte [ebp - 0x20]
add al, byte [ebp + ebx - 0x85c]
mov byte [ebp - 0x20], al
movzx edx, al
movzx edx, byte [ebp + edx - 0x85c]
add edx, esi
mov al, byte [ebp - 0x34]
add al, 0x2a
shl cl, 4
add cl, 0xc0
or cl, al
movzx edi, byte [ebp + edi - 0x85c]
mov esi, ebx
add edi, ebx
mov eax, 0xff
and edi, eax
mov ch, byte [ebp + edi - 0x85c]
xor ch, cl
and edx, eax
movzx edx, byte [ebp + edx - 0x85c]
xor ch, byte [ebp + edx - 0x85c]
xor edi, edi
mov bl, byte [ebp - 0x24]
mov eax, esi
add bl, al
movzx esi, cl
mov dword [ebp - 0x38], esi
mov eax, dword [ebp - 0x28]
mov cl, byte [eax + edi*2 + 2]
mov al, byte [eax + edi*2 + 3]
mov byte [ebp - 0x34], al
mov byte [ebp - 0x24], bl
movzx edx, bl
mov ah, byte [ebp + edx - 0x85c]
mov dword [ebp - 0x2c], edx
movzx ebx, byte [ebp + esi - 0x85c]
mov byte [ebp + esi - 0x85c], ah
movzx esi, ch
mov ah, byte [ebp + esi - 0x85c]
mov byte [ebp + edx - 0x85c], ah
mov eax, dword [ebp - 0x30]
add eax, edi
add eax, 2
mov edx, 0xff
and eax, edx
mov ch, byte [ebp + eax - 0x85c]
mov byte [ebp + esi - 0x85c], ch
mov byte [ebp + eax - 0x85c], bl
movzx eax, byte [ebp + esi - 0x85c]
mov edx, dword [ebp - 0x38]
movzx edx, byte [ebp + edx - 0x85c]
add edx, eax
mov al, byte [ebp - 0x20]
add al, byte [ebp + ebx - 0x85c]
mov byte [ebp - 0x20], al
movzx eax, al
movzx eax, byte [ebp + eax - 0x85c]
add eax, edx
mov dl, byte [ebp - 0x34]
add dl, 0x2a
shl cl, 4
add cl, 0xc0
or cl, dl
mov edx, dword [ebp - 0x2c]
movzx edx, byte [ebp + edx - 0x85c]
mov esi, ebx
add edx, ebx
mov ebx, 0xff
and edx, ebx
mov ch, byte [ebp + edx - 0x85c]
xor ch, cl
and eax, ebx
movzx eax, byte [ebp + eax - 0x85c]
xor ch, byte [ebp + eax - 0x85c]
mov byte [ebp + edi - 0x95c], ch
inc edi
cmp edi, 0xd
jne 0x43d089
mov eax, dword [ebp - 0x28]
mov dl, byte [eax + 0x1c]
mov byte [ebp - 0x34], dl
mov al, byte [eax + 0x1d]
mov byte [ebp - 0x3c], al
movzx ebx, cl
mov al, byte [ebp - 0x24]
mov edx, esi
add al, dl
mov byte [ebp - 0x24], al
movzx edx, al
mov cl, byte [ebp + edx - 0x85c]
mov dword [ebp - 0x38], ebx
movzx eax, byte [ebp + ebx - 0x85c]
mov byte [ebp + ebx - 0x85c], cl
movzx esi, ch
mov bl, byte [ebp + esi - 0x85c]
mov byte [ebp + edx - 0x85c], bl
mov ecx, dword [ebp - 0x30]
lea ebx, [ecx + edi]
add ebx, 2
mov ecx, 0xff
and ebx, ecx
mov cl, byte [ebp + ebx - 0x85c]
mov byte [ebp + esi - 0x85c], cl
mov byte [ebp + ebx - 0x85c], al
mov ebx, eax
mov cl, byte [ebp - 0x3c]
add cl, 0x2a
mov al, byte [ebp - 0x34]
shl al, 4
add al, 0xc0
or al, cl
movzx ecx, byte [ebp + edx - 0x85c]
mov edx, ebx
mov dword [ebp - 0x2c], ebx
add ecx, ebx
mov ebx, 0xff
and ecx, ebx
movzx ebx, al
mov dword [ebp - 0x34], ebx
xor al, byte [ebp + ecx - 0x85c]
mov bh, al
mov al, byte [ebp - 0x20]
add al, byte [ebp + edx - 0x85c]
mov byte [ebp - 0x20], al
movzx ecx, byte [ebp + esi - 0x85c]
mov edx, dword [ebp - 0x38]
movzx edx, byte [ebp + edx - 0x85c]
add edx, ecx
movzx ecx, al
movzx ecx, byte [ebp + ecx - 0x85c]
add ecx, edx
mov eax, 0xff
and ecx, eax
movzx ecx, byte [ebp + ecx - 0x85c]
xor bh, byte [ebp + ecx - 0x85c]
mov byte [ebp - 0x94f], bh
mov edx, dword [ebp - 0x28]
mov ch, byte [edx + 0x1e]
mov ah, byte [ebp - 0x24]
add ah, byte [ebp - 0x2c]
mov byte [ebp - 0x24], ah
mov cl, byte [edx + 0x1f]
movzx edx, ah
mov dword [ebp - 0x2c], edx
mov bl, byte [ebp + edx - 0x85c]
mov eax, dword [ebp - 0x34]
movzx esi, byte [ebp + eax - 0x85c]
mov byte [ebp + eax - 0x85c], bl
movzx eax, bh
mov dword [ebp - 0x38], eax
mov bl, byte [ebp + eax - 0x85c]
mov byte [ebp + edx - 0x85c], bl
mov edx, dword [ebp - 0x30]
lea ebx, [edx + edi]
add ebx, 3
mov edx, 0xff
and ebx, edx
mov dl, byte [ebp + ebx - 0x85c]
mov byte [ebp + eax - 0x85c], dl
mov eax, esi
mov byte [ebp + ebx - 0x85c], al
add cl, 0x2a
shl ch, 4
add ch, 0xc0
or ch, cl
mov edx, dword [ebp - 0x2c]
movzx edx, byte [ebp + edx - 0x85c]
add edx, esi
mov eax, 0xff
and edx, eax
movzx eax, ch
mov dword [ebp - 0x2c], eax
xor ch, byte [ebp + edx - 0x85c]
mov eax, dword [ebp - 0x38]
movzx edx, byte [ebp + eax - 0x85c]
mov eax, dword [ebp - 0x34]
movzx ebx, byte [ebp + eax - 0x85c]
add ebx, edx
mov al, byte [ebp - 0x20]
add al, byte [ebp + esi - 0x85c]
mov byte [ebp - 0x20], al
movzx edx, al
movzx edx, byte [ebp + edx - 0x85c]
add edx, ebx
mov eax, 0xff
and edx, eax
movzx edx, byte [ebp + edx - 0x85c]
xor ch, byte [ebp + edx - 0x85c]
mov byte [ebp - 0x94e], ch
mov edx, dword [ebp - 0x28]
mov cl, byte [edx + 0x20]
mov al, byte [ebp - 0x24]
mov ebx, esi
add al, bl
mov dl, byte [edx + 0x21]
mov byte [ebp - 0x34], dl
mov byte [ebp - 0x24], al
movzx ebx, al
mov dword [ebp - 0x38], ebx
mov dh, byte [ebp + ebx - 0x85c]
mov esi, dword [ebp - 0x2c]
movzx eax, byte [ebp + esi - 0x85c]
mov byte [ebp + esi - 0x85c], dh
movzx esi, ch
mov ch, byte [ebp + esi - 0x85c]
mov byte [ebp + ebx - 0x85c], ch
mov edx, dword [ebp - 0x30]
add edx, edi
add edx, 4
mov ebx, 0xff
and edx, ebx
mov ch, byte [ebp + edx - 0x85c]
mov byte [ebp + esi - 0x85c], ch
mov byte [ebp + edx - 0x85c], al
movzx ebx, byte [ebp + esi - 0x85c]
mov edx, dword [ebp - 0x2c]
movzx esi, byte [ebp + edx - 0x85c]
add esi, ebx
mov dl, byte [ebp - 0x20]
add dl, byte [ebp + eax - 0x85c]
mov byte [ebp - 0x20], dl
movzx edx, dl
movzx ebx, byte [ebp + edx - 0x85c]
add ebx, esi
mov dl, byte [ebp - 0x34]
add dl, 0x2a
shl cl, 4
add cl, 0xc0
or cl, dl
mov edx, dword [ebp - 0x38]
movzx edx, byte [ebp + edx - 0x85c]
mov esi, eax
add edx, eax
mov eax, 0xff
and edx, eax
mov ch, byte [ebp + edx - 0x85c]
xor ch, cl
and ebx, eax
movzx edx, byte [ebp + ebx - 0x85c]
xor ch, byte [ebp + edx - 0x85c]
mov byte [ebp - 0x94d], ch
add dword [ebp - 0x30], edi
xor edi, edi
mov bh, byte [ebp - 0x24]
mov eax, esi
add bh, al
movzx edx, cl
mov eax, dword [ebp - 0x28]
mov cl, byte [eax + edi*2 + 0x22]
mov al, byte [eax + edi*2 + 0x23]
mov byte [ebp - 0x34], al
movzx eax, byte [ebp + edx - 0x85c]
mov dword [ebp - 0x38], eax
mov byte [ebp - 0x24], bh
movzx eax, bh
mov dword [ebp - 0x2c], eax
mov bh, byte [ebp + eax - 0x85c]
mov byte [ebp + edx - 0x85c], bh
movzx esi, ch
mov ch, byte [ebp + esi - 0x85c]
mov byte [ebp + eax - 0x85c], ch
mov eax, dword [ebp - 0x30]
add eax, edi
add eax, 5
mov ebx, 0xff
and eax, ebx
mov ch, byte [ebp + eax - 0x85c]
mov byte [ebp + esi - 0x85c], ch
mov ebx, dword [ebp - 0x38]
mov byte [ebp + eax - 0x85c], bl
mov ch, byte [ebp - 0x20]
add ch, byte [ebp + ebx - 0x85c]
movzx eax, byte [ebp + esi - 0x85c]
movzx edx, byte [ebp + edx - 0x85c]
add edx, eax
mov byte [ebp - 0x20], ch
movzx eax, ch
movzx eax, byte [ebp + eax - 0x85c]
add eax, edx
mov dl, byte [ebp - 0x34]
add dl, 0x2a
shl cl, 4
add cl, 0xc0
or cl, dl
mov edx, dword [ebp - 0x2c]
movzx edx, byte [ebp + edx - 0x85c]
mov esi, ebx
add edx, ebx
mov ebx, 0xff
and edx, ebx
mov ch, byte [ebp + edx - 0x85c]
xor ch, cl
and eax, ebx
movzx eax, byte [ebp + eax - 0x85c]
xor ch, byte [ebp + eax - 0x85c]
mov byte [ebp + edi - 0x94c], ch
inc edi
cmp edi, 0xf
jne 0x43d42e
mov bh, byte [ebp - 0x24]
mov eax, esi
add bh, al
mov eax, dword [ebp - 0x30]
add eax, edi
add eax, 5
movzx edi, cl
mov dword [ebp - 0x24], edi
mov edx, dword [ebp - 0x28]
mov cl, byte [edx + 0x40]
mov bl, byte [edx + 0x41]
movzx esi, bh
mov bh, byte [ebp + esi - 0x85c]
movzx edx, byte [ebp + edi - 0x85c]
mov byte [ebp + edi - 0x85c], bh
movzx edi, ch
mov dword [ebp - 0x30], edi
mov ch, byte [ebp + edi - 0x85c]
mov byte [ebp + esi - 0x85c], ch
mov edi, 0xff
and eax, edi
mov ch, byte [ebp + eax - 0x85c]
mov edi, dword [ebp - 0x30]
mov byte [ebp + edi - 0x85c], ch
mov byte [ebp + eax - 0x85c], dl
mov ch, byte [ebp - 0x20]
add ch, byte [ebp + edx - 0x85c]
movzx eax, byte [ebp + esi - 0x85c]
add eax, edx
add bl, 0x2a
shl cl, 4
add cl, 0xc0
or cl, bl
mov esi, 0xff
and eax, esi
xor cl, byte [ebp + eax - 0x85c]
movzx eax, byte [ebp + edi - 0x85c]
mov edx, dword [ebp - 0x24]
movzx edx, byte [ebp + edx - 0x85c]
add edx, eax
movzx eax, ch
movzx eax, byte [ebp + eax - 0x85c]
add eax, edx
and eax, esi
jmp 0x43df18
lea edx, [0x43cdfb]
movdqa xmm1, xmmword [0x612110]
xor eax, eax
movdqa xmm2, xmmword [0x612120]
movdqu xmmword [ebp + eax - 0x85c], xmm1
add eax, 0x10
paddb xmm1, xmm2
cmp eax, 0x100
jne 0x43d5f3
movsd xmm1, qword [0x612130]
movapd xmm2, xmm0
subsd xmm2, xmm1
cvttsd2si eax, xmm2
lea ecx, [0x43cdde]
mov dword [ebp - 0x34], ecx
xor eax, 0x80000000
cvttsd2si ecx, xmm0
ucomisd xmm0, xmm1
cmovae ecx, eax
mov eax, ecx
shr eax, 0x18
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x24], ecx
shr ecx, 0x10
mov dword [ebp - 0x28], ecx
mov esi, 0xff
xor ecx, ecx
xor ebx, ebx
mov dword [ebp - 0x30], edx
xor edx, edx
inc edx
cmp esi, 2
jb 0x43d666
xor edx, edx
inc edx
add edx, edx
inc edx
cmp edx, esi
jb 0x43d65f
mov dword [ebp - 0x20], esi
mov esi, 0xc
cmp ecx, 3
ja case.default.0x43d673
jmp dword [ecx*4 + 0x614988]
movzx eax, bl
add eax, ebp
add eax, 0xfffff7a4
mov ebx, dword [ebp - 0x24]
jmp 0x43d6a5
movzx eax, bl
add eax, ebp
add eax, 0xfffff7a4
mov ebx, dword [ebp - 0x28]
jmp 0x43d6a5
movzx eax, bl
add eax, ebp
add eax, 0xfffff7a4
mov ebx, dword [ebp - 0x2c]
jmp 0x43d6ca
movzx eax, bl
add eax, ebp
add eax, 0xfffff7a4
mov ebx, dword [ebp - 0x24]
mov bl, bh
jmp 0x43d6ca
movzx eax, bl
mov bl, byte [ebp + eax - 0x85c]
mov eax, dword [ebp - 0x34]
add eax, ecx
add eax, 0xfffffffc
add bl, byte [eax]
inc ecx
movzx eax, bl
add bl, 0x21
cmp ecx, 0x20
movzx ebx, bl
cmovbe ebx, eax
mov eax, 0
cmova ecx, eax
movzx edi, bl
mov eax, edx
and eax, edi
dec esi
je 0x43d6f9
cmp eax, dword [ebp - 0x20]
ja 0x43d66e
jmp 0x43d700
xor edx, edx
div dword [ebp - 0x20]
mov eax, edx
mov esi, dword [ebp - 0x20]
cmp esi, eax
mov edx, dword [ebp - 0x30]
je 0x43d737
mov dl, byte [ebp + esi - 0x85c]
xor dl, byte [ebp + eax - 0x85c]
mov byte [ebp + esi - 0x85c], dl
xor dl, byte [ebp + eax - 0x85c]
mov byte [ebp + eax - 0x85c], dl
xor byte [ebp + esi - 0x85c], dl
mov edx, dword [ebp - 0x30]
dec esi
jne 0x43d654
mov cl, byte [ebp - 0x85b]
mov al, byte [ebp - 0x857]
mov byte [ebp - 0x20], al
mov esi, edx
movzx edx, cl
mov byte [ebp - 0x2c], cl
movzx ebx, byte [ebp + edi - 0x85c]
mov ch, byte [esi]
mov al, byte [esi + 1]
mov byte [ebp - 0x28], al
mov dword [ebp - 0x34], edx
mov dh, byte [ebp + edx - 0x85c]
add dh, byte [ebp - 0x859]
movzx esi, dh
mov dl, byte [ebp + esi - 0x85c]
movzx edi, byte [ebp - 0x855]
mov dword [ebp - 0x38], ebx
movzx eax, byte [ebp + ebx - 0x85c]
mov dword [ebp - 0x24], eax
mov byte [ebp + ebx - 0x85c], dl
mov bl, byte [ebp + edi - 0x85c]
mov byte [ebp + esi - 0x85c], bl
mov ebx, ecx
inc bl
movzx ebx, bl
mov cl, byte [ebp + ebx - 0x85c]
mov byte [ebp + edi - 0x85c], cl
mov byte [ebp + ebx - 0x85c], al
mov cl, byte [ebp - 0x28]
add cl, 0xa8
shl ch, 4
add ch, 0xa0
or ch, cl
movzx ebx, byte [ebp + esi - 0x85c]
add ebx, eax
mov esi, 0xff
and ebx, esi
mov esi, 0xff
movzx eax, ch
mov dword [ebp - 0x28], eax
xor ch, byte [ebp + ebx - 0x85c]
movzx edi, byte [ebp + edi - 0x85c]
mov eax, dword [ebp - 0x38]
movzx ebx, byte [ebp + eax - 0x85c]
add ebx, edi
mov al, byte [ebp - 0x20]
mov edi, dword [ebp - 0x24]
add al, byte [ebp + edi - 0x85c]
mov byte [ebp - 0x20], al
movzx edi, al
movzx edi, byte [ebp + edi - 0x85c]
add edi, ebx
and edi, esi
movzx edi, byte [ebp + edi - 0x85c]
xor ch, byte [ebp + edi - 0x85c]
add dh, byte [ebp - 0x24]
mov esi, dword [ebp - 0x30]
mov dl, byte [esi + 2]
mov bl, byte [esi + 3]
mov eax, dword [ebp - 0x28]
movzx esi, byte [ebp + eax - 0x85c]
mov dword [ebp - 0x24], esi
movzx edi, dh
mov bh, byte [ebp + edi - 0x85c]
mov byte [ebp + eax - 0x85c], bh
movzx eax, ch
mov dword [ebp - 0x3c], eax
mov ch, byte [ebp + eax - 0x85c]
mov byte [ebp + edi - 0x85c], ch
mov ch, byte [ebp - 0x2c]
add ch, 2
movzx esi, ch
mov ch, byte [ebp + esi - 0x85c]
mov byte [ebp + eax - 0x85c], ch
mov ecx, dword [ebp - 0x24]
mov byte [ebp + esi - 0x85c], cl
add bl, 0xa8
shl dl, 4
add dl, 0xa0
or dl, bl
movzx edi, byte [ebp + edi - 0x85c]
add edi, ecx
mov eax, 0xff
and edi, eax
movzx eax, dl
mov dword [ebp - 0x38], eax
xor dl, byte [ebp + edi - 0x85c]
mov al, byte [ebp - 0x20]
add al, byte [ebp + ecx - 0x85c]
mov byte [ebp - 0x20], al
mov esi, dword [ebp - 0x3c]
movzx edi, byte [ebp + esi - 0x85c]
mov esi, dword [ebp - 0x28]
movzx ebx, byte [ebp + esi - 0x85c]
add ebx, edi
movzx edi, al
movzx edi, byte [ebp + edi - 0x85c]
add edi, ebx
mov esi, 0xff
and edi, esi
movzx edi, byte [ebp + edi - 0x85c]
xor dl, byte [ebp + edi - 0x85c]
add dh, cl
mov byte [ebp - 0x95c], dl
mov edi, dword [ebp - 0x30]
mov ch, byte [edi + 4]
mov ah, byte [edi + 5]
mov esi, dword [ebp - 0x38]
movzx ebx, byte [ebp + esi - 0x85c]
mov byte [ebp - 0x24], dh
movzx edi, dh
mov dword [ebp - 0x28], edi
mov cl, byte [ebp + edi - 0x85c]
mov byte [ebp + esi - 0x85c], cl
movzx edx, dl
mov cl, byte [ebp + edx - 0x85c]
mov byte [ebp + edi - 0x85c], cl
mov al, byte [ebp - 0x2c]
add al, 3
movzx edi, al
mov cl, byte [ebp + edi - 0x85c]
mov byte [ebp + edx - 0x85c], cl
mov byte [ebp + edi - 0x85c], bl
movzx edi, byte [ebp + edx - 0x85c]
movzx edx, byte [ebp + esi - 0x85c]
add edx, edi
mov al, byte [ebp - 0x20]
add al, byte [ebp + ebx - 0x85c]
mov byte [ebp - 0x20], al
movzx edi, al
movzx esi, byte [ebp + edi - 0x85c]
add esi, edx
add ah, 0xa8
shl ch, 4
add ch, 0xa0
or ch, ah
mov eax, dword [ebp - 0x28]
movzx edi, byte [ebp + eax - 0x85c]
mov edx, ebx
add edi, ebx
mov eax, 0xff
and edi, eax
mov cl, byte [ebp + edi - 0x85c]
xor cl, ch
and esi, eax
movzx edi, byte [ebp + esi - 0x85c]
xor cl, byte [ebp + edi - 0x85c]
mov byte [ebp - 0x95b], cl
xor edi, edi
mov eax, edx
mov dl, byte [ebp - 0x24]
add dl, al
movzx ebx, ch
mov eax, dword [ebp - 0x30]
mov esi, edi
mov ch, byte [eax + edi*2 + 6]
mov al, byte [eax + edi*2 + 7]
mov byte [ebp - 0x2c], al
movzx eax, byte [ebp + ebx - 0x85c]
mov dword [ebp - 0x38], ebx
movzx edi, dl
mov byte [ebp - 0x24], dl
mov dh, byte [ebp + edi - 0x85c]
mov dword [ebp - 0x28], edi
mov byte [ebp + ebx - 0x85c], dh
movzx edx, cl
mov cl, byte [ebp + edx - 0x85c]
mov byte [ebp + edi - 0x85c], cl
mov ebx, dword [ebp - 0x34]
add ebx, esi
add ebx, 4
mov edi, 0xff
and ebx, edi
mov cl, byte [ebp + ebx - 0x85c]
mov byte [ebp + edx - 0x85c], cl
mov dword [ebp - 0x3c], eax
mov byte [ebp + ebx - 0x85c], al
mov cl, byte [ebp - 0x20]
add cl, byte [ebp + eax - 0x85c]
movzx edi, byte [ebp + edx - 0x85c]
mov eax, dword [ebp - 0x38]
movzx ebx, byte [ebp + eax - 0x85c]
add ebx, edi
mov byte [ebp - 0x20], cl
movzx edi, cl
movzx edi, byte [ebp + edi - 0x85c]
add edi, ebx
mov ebx, dword [ebp - 0x3c]
mov al, byte [ebp - 0x2c]
add al, 0xa8
shl ch, 4
add ch, 0xa0
or ch, al
mov eax, dword [ebp - 0x28]
movzx eax, byte [ebp + eax - 0x85c]
mov edx, ebx
add eax, ebx
mov ebx, 0xff
and eax, ebx
mov cl, byte [ebp + eax - 0x85c]
xor cl, ch
and edi, ebx
movzx eax, byte [ebp + edi - 0x85c]
xor cl, byte [ebp + eax - 0x85c]
mov byte [ebp + esi - 0x95a], cl
inc esi
mov edi, esi
cmp esi, 0xc
jne 0x43d9da
mov esi, dword [ebp - 0x30]
mov al, byte [esi + 0x1e]
mov ah, byte [esi + 0x1f]
movzx ebx, ch
mov ch, byte [ebp - 0x24]
add ch, dl
mov byte [ebp - 0x24], ch
movzx edx, ch
mov dword [ebp - 0x28], edx
mov ch, byte [ebp + edx - 0x85c]
mov dword [ebp - 0x38], ebx
movzx esi, byte [ebp + ebx - 0x85c]
mov dword [ebp - 0x3c], esi
mov byte [ebp + ebx - 0x85c], ch
movzx esi, cl
mov bl, byte [ebp + esi - 0x85c]
mov byte [ebp + edx - 0x85c], bl
mov dword [ebp - 0x2c], edi
mov ecx, dword [ebp - 0x34]
lea ebx, [ecx + edi]
add ebx, 4
mov ecx, 0xff
and ebx, ecx
mov cl, byte [ebp + ebx - 0x85c]
mov byte [ebp + esi - 0x85c], cl
mov ecx, dword [ebp - 0x3c]
mov byte [ebp + ebx - 0x85c], cl
movzx edx, byte [ebp + esi - 0x85c]
mov esi, dword [ebp - 0x38]
movzx ebx, byte [ebp + esi - 0x85c]
add ebx, edx
mov dl, byte [ebp - 0x20]
add dl, byte [ebp + ecx - 0x85c]
mov byte [ebp - 0x20], dl
mov esi, ecx
movzx ecx, dl
movzx ecx, byte [ebp + ecx - 0x85c]
add ecx, ebx
add ah, 0xa8
shl al, 4
add al, 0xa0
or al, ah
mov ebx, dword [ebp - 0x28]
movzx ebx, byte [ebp + ebx - 0x85c]
add ebx, esi
mov edx, esi
mov esi, 0xff
and ebx, esi
mov bl, byte [ebp + ebx - 0x85c]
xor bl, al
and ecx, esi
movzx ecx, byte [ebp + ecx - 0x85c]
xor bl, byte [ebp + ecx - 0x85c]
mov byte [ebp - 0x94e], bl
mov ecx, dword [ebp - 0x30]
mov ah, byte [ecx + 0x20]
mov byte [ebp - 0x28], ah
mov cl, byte [ecx + 0x21]
mov byte [ebp - 0x38], cl
mov cl, byte [ebp - 0x24]
add cl, dl
mov byte [ebp - 0x24], cl
movzx eax, al
movzx esi, cl
mov bh, byte [ebp + esi - 0x85c]
mov dword [ebp - 0x3c], eax
movzx edi, byte [ebp + eax - 0x85c]
mov byte [ebp + eax - 0x85c], bh
movzx edx, bl
mov cl, byte [ebp + edx - 0x85c]
mov byte [ebp + esi - 0x85c], cl
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x2c]
add ecx, eax
add ecx, 5
mov eax, 0xff
and ecx, eax
mov bl, byte [ebp + ecx - 0x85c]
mov byte [ebp + edx - 0x85c], bl
mov eax, edi
mov byte [ebp + ecx - 0x85c], al
mov cl, byte [ebp - 0x38]
add cl, 0xa8
mov bl, byte [ebp - 0x28]
shl bl, 4
add bl, 0xa0
or bl, cl
movzx ecx, byte [ebp + esi - 0x85c]
add ecx, edi
mov eax, 0xff
and ecx, eax
movzx eax, bl
mov dword [ebp - 0x28], eax
xor bl, byte [ebp + ecx - 0x85c]
mov eax, ebx
movzx ecx, byte [ebp + edx - 0x85c]
mov edx, dword [ebp - 0x3c]
movzx ebx, byte [ebp + edx - 0x85c]
add ebx, ecx
mov cl, byte [ebp - 0x20]
add cl, byte [ebp + edi - 0x85c]
mov byte [ebp - 0x20], cl
movzx ecx, cl
movzx ecx, byte [ebp + ecx - 0x85c]
add ecx, ebx
mov edx, 0xff
and ecx, edx
movzx ecx, byte [ebp + ecx - 0x85c]
xor al, byte [ebp + ecx - 0x85c]
mov byte [ebp - 0x94d], al
mov esi, dword [ebp - 0x30]
mov cl, byte [esi + 0x22]
mov ah, byte [ebp - 0x24]
mov ebx, edi
add ah, bl
mov dl, byte [esi + 0x23]
mov byte [ebp - 0x3c], dl
mov byte [ebp - 0x24], ah
movzx edi, ah
mov dword [ebp - 0x38], edi
mov ch, byte [ebp + edi - 0x85c]
mov esi, dword [ebp - 0x28]
movzx ebx, byte [ebp + esi - 0x85c]
mov byte [ebp + esi - 0x85c], ch
movzx edx, al
mov ch, byte [ebp + edx - 0x85c]
mov byte [ebp + edi - 0x85c], ch
mov eax, dword [ebp - 0x34]
mov esi, dword [ebp - 0x2c]
add esi, eax
add esi, 6
mov eax, 0xff
and esi, eax
mov ch, byte [ebp + esi - 0x85c]
mov byte [ebp + edx - 0x85c], ch
mov byte [ebp + esi - 0x85c], bl
movzx edx, byte [ebp + edx - 0x85c]
mov eax, dword [ebp - 0x28]
movzx edi, byte [ebp + eax - 0x85c]
add edi, edx
mov al, byte [ebp - 0x20]
add al, byte [ebp + ebx - 0x85c]
mov byte [ebp - 0x20], al
movzx esi, al
movzx edx, byte [ebp + esi - 0x85c]
add edx, edi
mov al, byte [ebp - 0x3c]
add al, 0xa8
shl cl, 4
add cl, 0xa0
or cl, al
mov eax, dword [ebp - 0x38]
movzx esi, byte [ebp + eax - 0x85c]
add esi, ebx
mov eax, 0xff
and esi, eax
mov ch, byte [ebp + esi - 0x85c]
xor ch, cl
and edx, eax
movzx esi, byte [ebp + edx - 0x85c]
xor ch, byte [ebp + esi - 0x85c]
mov byte [ebp - 0x94c], ch
mov eax, dword [ebp - 0x34]
add eax, dword [ebp - 0x2c]
add al, 7
xor edi, edi
mov dh, byte [ebp - 0x24]
add dh, bl
movzx esi, cl
mov dword [ebp - 0x38], esi
mov ebx, dword [ebp - 0x30]
mov cl, byte [ebx + edi*2 + 0x24]
mov dl, byte [ebx + edi*2 + 0x25]
mov byte [ebp - 0x2c], dl
movzx ebx, byte [ebp + esi - 0x85c]
mov dword [ebp - 0x3c], ebx
mov byte [ebp - 0x24], dh
movzx ebx, dh
mov dh, byte [ebp + ebx - 0x85c]
mov dword [ebp - 0x28], ebx
mov byte [ebp + esi - 0x85c], dh
movzx esi, ch
mov ch, byte [ebp + esi - 0x85c]
mov byte [ebp + ebx - 0x85c], ch
mov dword [ebp - 0x34], eax
movzx edx, al
mov ch, byte [ebp + edx - 0x85c]
mov byte [ebp + esi - 0x85c], ch
mov ebx, dword [ebp - 0x3c]
mov byte [ebp + edx - 0x85c], bl
mov ch, byte [ebp - 0x20]
add ch, byte [ebp + ebx - 0x85c]
movzx eax, byte [ebp + esi - 0x85c]
mov edx, dword [ebp - 0x38]
movzx esi, byte [ebp + edx - 0x85c]
add esi, eax
mov byte [ebp - 0x20], ch
movzx eax, ch
movzx eax, byte [ebp + eax - 0x85c]
add eax, esi
mov dl, byte [ebp - 0x2c]
add dl, 0xa8
shl cl, 4
add cl, 0xa0
or cl, dl
mov edx, dword [ebp - 0x28]
movzx edx, byte [ebp + edx - 0x85c]
add edx, ebx
mov esi, 0xff
and edx, esi
mov ch, byte [ebp + edx - 0x85c]
xor ch, cl
and eax, esi
movzx eax, byte [ebp + eax - 0x85c]
xor ch, byte [ebp + eax - 0x85c]
mov byte [ebp + edi - 0x94b], ch
inc edi
mov eax, dword [ebp - 0x34]
inc al
cmp edi, 0xe
jne 0x43dd86
mov dh, byte [ebp - 0x24]
add dh, bl
movzx edi, cl
mov dword [ebp - 0x24], edi
mov esi, dword [ebp - 0x30]
mov cl, byte [esi + 0x40]
mov dl, byte [esi + 0x41]
movzx esi, dh
mov dh, byte [ebp + esi - 0x85c]
movzx ebx, byte [ebp + edi - 0x85c]
mov byte [ebp + edi - 0x85c], dh
movzx edi, ch
mov ch, byte [ebp + edi - 0x85c]
mov byte [ebp + esi - 0x85c], ch
movzx eax, al
mov ch, byte [ebp + eax - 0x85c]
mov byte [ebp + edi - 0x85c], ch
mov byte [ebp + eax - 0x85c], bl
add dl, 0xa8
shl cl, 4
add cl, 0xa0
or cl, dl
mov ch, byte [ebp - 0x20]
add ch, byte [ebp + ebx - 0x85c]
movzx eax, byte [ebp + esi - 0x85c]
add eax, ebx
mov edx, 0xff
and eax, edx
xor cl, byte [ebp + eax - 0x85c]
movzx eax, byte [ebp + edi - 0x85c]
mov esi, dword [ebp - 0x24]
movzx esi, byte [ebp + esi - 0x85c]
add esi, eax
movzx eax, ch
movzx eax, byte [ebp + eax - 0x85c]
add eax, esi
and eax, edx
movzx eax, byte [ebp + eax - 0x85c]
xor cl, byte [ebp + eax - 0x85c]
mov byte [ebp - 0x93d], cl
mov byte [ebp - 0x93c], 0
lea edi, [ebp - 0xb5c]
lea eax, [ebp - 0x95c]
push eax
push edi
call fcn.005fecc0
add esp, 8
mov dword [ebp - 0x10], 0xffffffff
xor esi, esi
lea ebx, [ebp - 0x85c]
push 0x800
push esi
push ebx
call fcn.005e2800
add esp, 0xc
mov dword [ebp - 0x10], 0xffffffff
sub esp, 0x14
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], edi
mov dword [esp + 4], esi
mov dword [esp], ebx
call fcn.00439810
add esp, 0x14
lea edi, [ebp - 0x95c]
push 0x100
push esi
push edi
call fcn.005e2800
add esp, 0xc
push edi
call fcn.0043e10c
add esp, 4
mov edi, 0x980
push edi
call fcn.005db443
add esp, 4
mov ebx, eax
push edi
push esi
push eax
call fcn.005e2800
add esp, 0xc
lea eax, [ebp - 0x95c]
push eax
push edi
push ebx
call fcn.005fedb8
add esp, 0xc
lea eax, [ebp - 0x85c]
push eax
push edi
mov dword [ebp - 0x24], ebx
push ebx
call fcn.005fedb8
add esp, 0xc
mov byte [ebp + esi - 0x85c], 0
inc esi
cmp esi, 0x800
jne 0x43dfe7
mov esi, 3
movzx eax, byte [ebp - 0x40]
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x20], esi
test esi, esi
jle 0x43e089
xor eax, eax
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x48], 0xf
mov byte [ebp - 0x5c], 0
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp + 0xc]
push dword [ebp - 0x30]
lea eax, [ebp - 0x5c]
push eax
push dword [ebp - 0x24]
call fcn.0040fb00
mov ebx, eax
mov esi, dword [ebp - 0x20]
test al, al
jne 0x43e04d
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, dword [ebp - 0x20]
lea esi, [eax - 1]
mov eax, dword [ebp - 0x48]
cmp eax, 0x10
jb 0x43e081
mov ecx, dword [ebp - 0x5c]
lea edi, [eax + 1]
cmp edi, 0x1000
jb 0x43e077
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x43e0c1
add eax, 0x24
mov edi, eax
mov ecx, edx
push edi
push ecx
call fcn.005db412
add esp, 8
test bl, bl
je 0x43e004
cmp dword [ebp - 0x20], 0
setg bl
mov eax, dword [ebp - 0x24]
mov byte [eax], 0
mov byte [eax + 1], 0
mov byte [eax + 2], 0
mov byte [eax + 3], 0
push eax
call fcn.005db44c
add esp, 4
mov eax, dword [ebp - 0x18]
mov dword fs:[0], eax
mov eax, ebx
add esp, 0xb50
pop esi
pop edi
pop ebx
pop ebp
ret
call fcn.005f5844
push ebp
sub esp, 0x14
add ebp, 0xc
mov eax, dword [ebp - 0x48]
cmp eax, 0x10
jb 0x43e101
mov ecx, dword [ebp - 0x5c]
lea esi, [eax + 1]
cmp esi, 0x1000
jb 0x43e0f7
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x43e106
add eax, 0x24
mov esi, eax
mov ecx, edx
push esi
push ecx
call fcn.005db412
add esp, 8
add esp, 0x14
pop ebp
ret
call fcn.005f5844
int3