Function at 0x439810
Capabilities:
Encode data using base64
Encrypt data using rc4 ksa
Encrypt data using speck

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x780
mov esi, esp
mov dword [esi + 0x768], ebp
mov edi, dword [ebp + 0x14]
mov al, byte [ebp + 0xc]
lea ecx, [esi + 0x770]
mov dword [ecx - 4], esp
mov dword [ecx + 8], 0xffffffff
mov dword [ecx + 4], 0x43faa0
mov edx, dword fs:[0]
mov dword [ecx], edx
mov dword fs:[0], ecx
test al, al
je 0x439865
push dword [ebp + 0x18]
call fcn.00438f7a
add esp, 4
jmp 0x43986b
call dword [sym.imp.KERNEL32.dll_GetTickCount]
lea ecx, [esi + 0x350]
push eax
push ecx
call fcn.00439008
add esp, 8
lea eax, [esi + 0x464]
push 0x200
push 0
push eax
call fcn.005e2800
add esp, 0xc
push edi
call fcn.005fef10
add esp, 4
mov edx, edi
mov edi, eax
shr edi, 1
sub eax, edi
xorpd xmm0, xmm0
lea ecx, [esi + 0x430]
movapd xmmword [ecx + 0x20], xmm0
movapd xmmword [ecx + 0x10], xmm0
movapd xmmword [ecx], xmm0
lea ebx, [esi + 0x400]
movapd xmmword [ebx + 0x20], xmm0
movapd xmmword [ebx + 0x10], xmm0
movapd xmmword [ebx], xmm0
push eax
push edx
push ecx
call fcn.005ff020
add esp, 0xc
add edi, dword [ebp + 0x14]
push edi
push ebx
lea ebx, [esi + 0x350]
call fcn.005fecc0
add esp, 8
mov eax, dword [ebx + 0x14]
mov dword [esi + 0x10], eax
cmp eax, 0xf
jbe 0x4398fd
mov ebx, dword [esi + 0x350]
push ebx
call fcn.005fef10
add esp, 4
mov edi, eax
shr edi, 1
push ebx
call fcn.005fef10
add esp, 4
sub eax, edi
xorpd xmm0, xmm0
movapd xmmword [esi + 0x3c0], xmm0
movapd xmmword [esi + 0x3b0], xmm0
movapd xmmword [esi + 0x3a0], xmm0
movapd xmmword [esi + 0x3f0], xmm0
movapd xmmword [esi + 0x3e0], xmm0
movapd xmmword [esi + 0x3d0], xmm0
cmp dword [esi + 0x10], 0xf
jbe 0x439957
mov ebx, dword [esi + 0x350]
jmp 0x43995d
lea ebx, [esi + 0x350]
lea ecx, [esi + 0x3a0]
push eax
push ebx
push ecx
call fcn.005ff020
add esp, 0xc
add ebx, edi
lea eax, [esi + 0x3d0]
push ebx
push eax
call fcn.005fecc0
add esp, 8
xorpd xmm0, xmm0
movsd xmm4, qword [0x614718]
movsd xmm5, qword [0x614720]
movsd xmm6, qword [0x6120f8]
movsd xmm7, qword [0x614728]
xorpd xmm3, xmm3
movapd xmm1, xmm3
mulsd xmm1, qword [0x614700]
mulsd xmm1, xmm3
movapd xmm2, xmm3
mulsd xmm2, xmm3
subsd xmm1, xmm2
movapd xmm2, xmm3
mulsd xmm2, qword [0x614708]
mulsd xmm2, xmm3
addsd xmm2, qword [0x614710]
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 0x4399a8
xorpd xmm1, xmm1
ucomisd xmm1, xmm0
jbe 0x439a42
salc
invalid
lea eax, [0x439a19]
mov dword [esi + 0x20], eax
movdqa xmm1, xmmword [0x612110]
xor eax, eax
movdqa xmm2, xmmword [0x612120]
movdqu xmmword [esi + eax + 0x150], xmm1
add eax, 0x10
paddb xmm1, xmm2
cmp eax, 0x100
jne 0x439a5d
movsd xmm1, qword [0x612130]
movapd xmm2, xmm0
subsd xmm2, xmm1
cvttsd2si eax, xmm2
lea ecx, [0x439a1d]
mov dword [esi + 0x14], ecx
xor eax, 0x80000000
cvttsd2si ecx, xmm0
ucomisd xmm0, xmm1
cmovae ecx, eax
mov eax, ecx
shr eax, 0x18
mov dword [esi + 0x1c], eax
mov dword [esi + 0x18], ecx
shr ecx, 0x10
mov dword [esi + 0x24], ecx
mov edi, 0xff
xor ecx, ecx
xor ebx, ebx
xor edx, edx
inc edx
cmp edi, 2
jb 0x439acd
xor edx, edx
inc edx
add edx, edx
inc edx
cmp edx, edi
jb 0x439ac6
mov dword [esi + 0x10], edi
mov dword [esi + 0xc], 0xc
cmp ebx, 3
ja case.default.0x439adc
jmp dword [ebx*4 + 0x614918]
movzx eax, cl
lea ecx, [esi + eax]
add ecx, 0x150
mov eax, dword [esi + 0x18]
jmp 0x439b14
movzx eax, cl
lea ecx, [esi + eax]
add ecx, 0x150
mov eax, dword [esi + 0x24]
jmp 0x439b14
movzx eax, cl
lea ecx, [esi + eax]
add ecx, 0x150
mov eax, dword [esi + 0x1c]
jmp 0x439b3b
movzx eax, cl
lea ecx, [esi + eax]
add ecx, 0x150
mov eax, dword [esi + 0x18]
mov al, ah
jmp 0x439b3b
movzx eax, cl
mov al, byte [esi + eax + 0x150]
mov ecx, dword [esi + 0x14]
add ecx, ebx
add ecx, 0xfffffffc
add al, byte [ecx]
inc ebx
movzx edi, al
add al, 0x24
cmp ebx, 0x23
mov ecx, 0
cmova ebx, ecx
movzx ecx, al
cmovbe ecx, edi
movzx edi, cl
mov eax, edx
and eax, edi
dec dword [esi + 0xc]
je 0x439b6b
cmp eax, dword [esi + 0x10]
ja 0x439ad7
jmp 0x439b72
xor edx, edx
div dword [esi + 0x10]
mov eax, edx
mov dword [esi + 0xc], edi
mov edi, dword [esi + 0x10]
cmp edi, eax
je 0x439ba6
mov dl, byte [esi + edi + 0x150]
xor dl, byte [esi + eax + 0x150]
mov byte [esi + edi + 0x150], dl
xor dl, byte [esi + eax + 0x150]
mov byte [esi + eax + 0x150], dl
xor byte [esi + edi + 0x150], dl
dec edi
jne 0x439abb
movzx eax, byte [esi + 0x151]
mov dword [esi + 0x18], eax
mov cl, byte [esi + 0x155]
mov byte [esi + 0x10], cl
mov ecx, dword [esi + 0xc]
movzx ecx, byte [esi + ecx + 0x150]
mov dword [esi + 0x14], ecx
mov bh, byte [esi + eax + 0x150]
add bh, byte [esi + 0x153]
mov eax, dword [esi + 0x20]
mov bl, byte [eax]
mov al, byte [eax + 1]
mov byte [esi + 0xc], al
movzx eax, bh
mov dword [esi + 0x24], eax
mov al, byte [esi + eax + 0x150]
movzx edx, byte [esi + 0x157]
movzx edi, byte [esi + ecx + 0x150]
mov dword [esi + 0x1c], edi
mov byte [esi + ecx + 0x150], al
mov al, byte [esi + edx + 0x150]
mov edi, dword [esi + 0x24]
mov byte [esi + edi + 0x150], al
mov eax, dword [esi + 0x18]
inc al
movzx eax, al
mov ch, byte [esi + eax + 0x150]
mov byte [esi + edx + 0x150], ch
mov ecx, dword [esi + 0x1c]
mov byte [esi + eax + 0x150], cl
movzx eax, byte [esi + edx + 0x150]
mov edx, dword [esi + 0x14]
movzx edx, byte [esi + edx + 0x150]
add edx, eax
mov al, byte [esi + 0x10]
add al, byte [esi + ecx + 0x150]
mov byte [esi + 0x10], al
movzx eax, al
movzx eax, byte [esi + eax + 0x150]
add eax, edx
mov dl, byte [esi + 0xc]
add dl, 0x30
shl bl, 4
add bl, 0x30
or bl, dl
movzx edx, byte [esi + edi + 0x150]
add edx, ecx
mov edi, ecx
mov ecx, 0xff
and edx, ecx
mov ch, byte [esi + edx + 0x150]
xor ch, bl
mov edx, 0xff
and eax, edx
movzx eax, byte [esi + eax + 0x150]
xor ch, byte [esi + eax + 0x150]
mov eax, edi
add bh, al
mov edx, dword [esi + 0x20]
mov al, byte [edx + 2]
mov ah, byte [edx + 3]
movzx edi, bl
mov dword [esi + 0x14], edi
movzx edx, bh
mov cl, byte [esi + edx + 0x150]
movzx ebx, byte [esi + edi + 0x150]
mov dword [esi + 0xc], ebx
mov byte [esi + edi + 0x150], cl
movzx edi, ch
mov cl, byte [esi + edi + 0x150]
mov byte [esi + edx + 0x150], cl
mov ecx, dword [esi + 0x18]
add cl, 2
movzx ecx, cl
mov bl, byte [esi + ecx + 0x150]
mov byte [esi + edi + 0x150], bl
mov ebx, dword [esi + 0xc]
mov byte [esi + ecx + 0x150], bl
movzx ecx, byte [esi + edx + 0x150]
mov bl, byte [esi + 0x10]
mov edx, dword [esi + 0xc]
add bl, byte [esi + edx + 0x150]
add ecx, edx
shl al, 4
add al, 0x30
add ah, 0x30
or ah, al
mov edx, 0xff
and ecx, edx
xor ah, byte [esi + ecx + 0x150]
movzx ecx, byte [esi + edi + 0x150]
mov edx, dword [esi + 0x14]
movzx edx, byte [esi + edx + 0x150]
add edx, ecx
movzx ecx, bl
movzx ecx, byte [esi + ecx + 0x150]
add ecx, edx
mov edx, 0xff
and ecx, edx
movzx ecx, byte [esi + ecx + 0x150]
xor ah, byte [esi + ecx + 0x150]
mov byte [esi + 0x36], ah
mov byte [esi + 0x37], 0
xorpd xmm3, xmm3
movsd xmm4, qword [0x614740]
movsd xmm5, qword [0x614748]
movsd xmm6, qword [0x614750]
movsd xmm7, qword [0x614758]
xorpd xmm0, xmm0
movapd xmm1, xmm3
mulsd xmm1, qword [0x614730]
mulsd xmm1, xmm3
movapd xmm2, xmm3
mulsd xmm2, xmm3
subsd xmm1, xmm2
movapd xmm2, xmm3
mulsd xmm2, qword [0x614738]
mulsd xmm2, xmm3
addsd xmm2, xmm4
divsd xmm1, xmm2
addsd xmm1, xmm0
movapd xmm2, xmm3
mulsd xmm2, xmm5
addsd xmm2, xmm1
movapd xmm0, xmm6
cmpltsd xmm0, xmm1
andpd xmm2, xmm0
andnpd xmm0, xmm1
orpd xmm0, xmm2
movsd xmm1, qword [0x612280]
addsd xmm3, xmm1
ucomisd xmm7, xmm3
ja 0x439da3
xorpd xmm1, xmm1
ucomisd xmm1, xmm0
jbe 0x439e38
cmp byte [eax], ah
sub byte [ecx + 0x7d], ah
pop esi
inc ebx
pop eax
jb 0x439e99
pop ecx
jge 0x439e80
and byte [ecx + 0x3d], ah
inc eax
sub dl, byte [esi + 0x48]
inc eax
jbe 0x439e71
push 0x3b
push 0x3d
jmp 0x43a17c
lea eax, [0x439e2f]
mov dword [esi + 0x28], eax
movdqa xmm1, xmmword [0x612110]
xor eax, eax
movdqa xmm2, xmmword [0x612120]
movdqu xmmword [esi + eax + 0x150], xmm1
add eax, 0x10
paddb xmm1, xmm2
cmp eax, 0x100
jne 0x439e53
movsd xmm1, qword [0x612130]
movapd xmm2, xmm0
add byte [esi + 0xf], ah
sub al, dl
subsd xmm2, xmm1
cvttsd2si eax, xmm2
lea ecx, [0x439e18]
mov dword [esi + 0x24], ecx
xor eax, 0x80000000
cvttsd2si ecx, xmm0
sbb byte [esi + 0x4e890043], bl
and al, 0x35
add byte [eax], al
add byte [eax - 0x37d3f00e], al
ucomisd xmm0, xmm1
cmovae ecx, eax
mov eax, ecx
shr eax, 0x18
mov dword [esi + 0x20], eax
mov dword [esi + 0x1c], ecx
shr ecx, 0x10
mov dword [esi + 0x2c], ecx
mov edi, 0xff
xor ebx, ebx
xor ecx, ecx
xor edx, edx
inc edx
cmp edi, 2
jb 0x439ec3
xor edx, edx
inc edx
add edx, edx
inc edx
cmp edx, edi
jb 0x439ebc
mov dword [esi + 0xc], edx
mov dword [esi + 0x10], edi
mov dword [esi + 0x18], 0xc
cmp ebx, 3
ja case.default.0x439ed5
jmp dword [ebx*4 + 0x614928]
movzx eax, cl
add eax, esi
add eax, 0x150
mov ecx, dword [esi + 0x1c]
jmp 0x439f07
movzx eax, cl
add eax, esi
add eax, 0x150
mov ecx, dword [esi + 0x2c]
jmp 0x439f07
movzx eax, cl
add eax, esi
add eax, 0x150
mov ecx, dword [esi + 0x20]
jmp 0x439f2c
movzx eax, cl
add eax, esi
add eax, 0x150
mov ecx, dword [esi + 0x1c]
mov cl, ch
jmp 0x439f2c
movzx eax, cl
mov cl, byte [esi + eax + 0x150]
mov eax, dword [esi + 0x24]
add eax, ebx
add eax, 0xfffffffc
add cl, byte [eax]
inc ebx
movzx eax, cl
add cl, 0x1b
cmp ebx, 0x1a
movzx ecx, cl
cmovbe ecx, eax
mov eax, 0
cmova ebx, eax
movzx edx, cl
mov eax, dword [esi + 0xc]
mov edi, edx
mov dword [esi + 0x14], edx
and eax, edx
dec dword [esi + 0x18]
je 0x439f63
cmp eax, dword [esi + 0x10]
ja 0x439ed0
jmp 0x439f6a
xor edx, edx
div dword [esi + 0x10]
mov eax, edx
mov edi, dword [esi + 0x10]
cmp edi, eax
je 0x439f9b
mov dl, byte [esi + edi + 0x150]
xor dl, byte [esi + eax + 0x150]
mov byte [esi + edi + 0x150], dl
xor dl, byte [esi + eax + 0x150]
mov byte [esi + eax + 0x150], dl
xor byte [esi + edi + 0x150], dl
dec edi
jne 0x439eb1
movzx eax, byte [esi + 0x151]
mov dword [esi + 0x18], eax
mov ecx, eax
mov al, byte [esi + 0x155]
mov byte [esi + 0x10], al
mov bl, byte [esi + ecx + 0x150]
add bl, byte [esi + 0x153]
mov eax, dword [esi + 0x14]
movzx ecx, byte [esi + eax + 0x150]
mov dword [esi + 0x24], ecx
mov edx, dword [esi + 0x28]
mov ah, byte [edx]
mov bh, byte [edx + 1]
movzx edi, bl
mov al, byte [esi + edi + 0x150]
movzx edx, byte [esi + 0x157]
mov dword [esi + 0x14], edx
movzx edx, byte [esi + ecx + 0x150]
mov dword [esi + 0xc], edx
mov byte [esi + ecx + 0x150], al
mov ecx, dword [esi + 0x14]
mov al, byte [esi + ecx + 0x150]
mov byte [esi + edi + 0x150], al
mov edx, dword [esi + 0x18]
mov al, dl
inc al
movzx edx, al
mov dword [esi + 0x1c], edx
mov al, byte [esi + edx + 0x150]
mov byte [esi + ecx + 0x150], al
mov edx, dword [esi + 0xc]
mov ecx, dword [esi + 0x1c]
mov byte [esi + ecx + 0x150], dl
add bh, 0xce
shl ah, 4
add ah, 0xe0
or ah, bh
movzx ecx, byte [esi + edi + 0x150]
add ecx, edx
mov edi, 0xff
and ecx, edi
movzx edi, ah
xor ah, byte [esi + ecx + 0x150]
mov ecx, dword [esi + 0x14]
movzx ecx, byte [esi + ecx + 0x150]
mov edx, dword [esi + 0x24]
movzx edx, byte [esi + edx + 0x150]
add edx, ecx
mov al, byte [esi + 0x10]
mov ecx, dword [esi + 0xc]
add al, byte [esi + ecx + 0x150]
mov byte [esi + 0x10], al
movzx ecx, al
movzx ecx, byte [esi + ecx + 0x150]
add ecx, edx
mov edx, 0xff
and ecx, edx
movzx ecx, byte [esi + ecx + 0x150]
xor ah, byte [esi + ecx + 0x150]
add bl, byte [esi + 0xc]
mov edx, dword [esi + 0x28]
mov cl, byte [edx + 2]
mov dl, byte [edx + 3]
movzx ebx, bl
mov dword [esi + 0x24], ebx
mov dh, byte [esi + ebx + 0x150]
mov dword [esi + 0x1c], edi
movzx ebx, byte [esi + edi + 0x150]
mov dword [esi + 0xc], ebx
mov byte [esi + edi + 0x150], dh
movzx ebx, ah
mov dword [esi + 0x14], ebx
mov ah, byte [esi + ebx + 0x150]
mov edi, dword [esi + 0x24]
mov byte [esi + edi + 0x150], ah
mov eax, dword [esi + 0x18]
add al, 2
movzx eax, al
mov ch, byte [esi + eax + 0x150]
mov byte [esi + ebx + 0x150], ch
mov ebx, dword [esi + 0xc]
mov byte [esi + eax + 0x150], bl
movzx eax, byte [esi + edi + 0x150]
mov dh, byte [esi + 0x10]
mov ebx, dword [esi + 0xc]
add dh, byte [esi + ebx + 0x150]
add eax, ebx
shl cl, 4
add cl, 0xe0
add dl, 0xce
or dl, cl
mov ebx, 0xff
and eax, ebx
xor dl, byte [esi + eax + 0x150]
mov eax, dword [esi + 0x14]
movzx eax, byte [esi + eax + 0x150]
mov ecx, dword [esi + 0x1c]
movzx ecx, byte [esi + ecx + 0x150]
add ecx, eax
movzx eax, dh
movzx eax, byte [esi + eax + 0x150]
add eax, ecx
and eax, ebx
movzx eax, byte [esi + eax + 0x150]
xor dl, byte [esi + eax + 0x150]
mov byte [esi + 0x34], dl
mov byte [esi + 0x35], 0
xorpd xmm4, xmm4
movsd xmm5, qword [0x614778]
movsd xmm6, qword [0x614780]
movsd xmm7, qword [0x612228]
movsd xmm2, qword [0x614788]
xorpd xmm0, xmm0
movapd xmm1, xmm4
mulsd xmm1, qword [0x614760]
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 [0x614770]
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 0x43a1a4
xorpd xmm1, xmm1
ucomisd xmm1, xmm0
jbe 0x43a23d
jl 0x43a22b
jns 0x43a22f
and al, 0x4b
push edx
outsb dx, byte [esi]
and byte [ebx], bh
push 0x266a327d
xor edi, dword [ebx + 0x3a]
pop esi
imul edi, dword [edi], 0x20
cmp ch, byte [ebx]
imul edi, dword [ecx + 0x72], 0x6e
jb 0x43a29f
je 0x43a29e
jl 0x43a2b1
pop ecx
pop eax
outsd dx, dword [esi]
jmp 0x43a57c
lea eax, [0x43a215]
mov dword [esi + 0x28], eax
movdqa xmm1, xmmword [0x612110]
xor eax, eax
movdqa xmm2, xmmword [0x612120]
movdqu xmmword [esi + eax + 0x150], xmm1
add eax, 0x10
paddb xmm1, xmm2
cmp eax, 0x100
jne 0x43a258
movsd xmm1, qword [0x612130]
movapd xmm2, xmm0
subsd xmm2, xmm1
cvttsd2si eax, xmm2
lea ecx, [0x43a219]
mov dword [esi + 0x24], ecx
xor eax, 0x80000000
cvttsd2si ecx, xmm0
ucomisd xmm0, xmm1
cmovae ecx, eax
mov eax, ecx
shr eax, 0x18
mov dword [esi + 0x20], eax
call 0x208a2bbc
mov dword [esi + 0x1c], ecx
shr ecx, 0x10
mov dword [esi + 0x2c], ecx
mov edi, 0xff
xor ebx, ebx
xor ecx, ecx
add byte [ecx], dh
invalid
xor edx, edx
inc edx
cmp edi, 2
jb 0x43a2c8
xor edx, edx
inc edx
add edx, edx
inc edx
cmp edx, edi
jb 0x43a2c1
mov dword [esi + 0xc], edx
mov dword [esi + 0x10], edi
mov dword [esi + 0x18], 0xc
cmp ebx, 3
ja case.default.0x43a2da
jmp dword [ebx*4 + 0x614938]
movzx eax, cl
add eax, esi
add eax, 0x150
mov ecx, dword [esi + 0x1c]
jmp 0x43a30c
movzx eax, cl
add eax, esi
add eax, 0x150
mov ecx, dword [esi + 0x2c]
jmp 0x43a30c
movzx eax, cl
add eax, esi
add eax, 0x150
mov ecx, dword [esi + 0x20]
jmp 0x43a331
movzx eax, cl
add eax, esi
add eax, 0x150
mov ecx, dword [esi + 0x1c]
mov cl, ch
jmp 0x43a331
movzx eax, cl
mov cl, byte [esi + eax + 0x150]
mov eax, dword [esi + 0x24]
add eax, ebx
add eax, 0xfffffffc
add cl, byte [eax]
inc ebx
movzx eax, cl
add cl, 0x23
cmp ebx, 0x22
movzx ecx, cl
cmovbe ecx, eax
mov eax, 0
cmova ebx, eax
movzx edx, cl
mov eax, dword [esi + 0xc]
mov edi, edx
mov dword [esi + 0x14], edx
and eax, edx
dec dword [esi + 0x18]
je 0x43a368
cmp eax, dword [esi + 0x10]
ja 0x43a2d5
jmp 0x43a36f
xor edx, edx
div dword [esi + 0x10]
mov eax, edx
mov edi, dword [esi + 0x10]
cmp edi, eax
je 0x43a3a0
mov dl, byte [esi + edi + 0x150]
xor dl, byte [esi + eax + 0x150]
mov byte [esi + edi + 0x150], dl
xor dl, byte [esi + eax + 0x150]
mov byte [esi + eax + 0x150], dl
xor byte [esi + edi + 0x150], dl
dec edi
jne 0x43a2b6
movzx ecx, byte [esi + 0x151]
mov dword [esi + 0x1c], ecx
mov al, byte [esi + 0x155]
mov byte [esi + 0x10], al
mov eax, dword [esi + 0x14]
movzx eax, byte [esi + eax + 0x150]
mov dword [esi + 0x18], eax
mov al, byte [esi + ecx + 0x150]
add al, byte [esi + 0x153]
mov byte [esi + 0x14], al
mov edx, dword [esi + 0x28]
mov bl, byte [edx]
mov dl, byte [edx + 1]
mov byte [esi + 0x24], dl
movzx eax, al
mov dword [esi + 0x20], eax
mov bh, byte [esi + eax + 0x150]
movzx edx, byte [esi + 0x157]
mov eax, dword [esi + 0x18]
movzx edi, byte [esi + eax + 0x150]
mov dword [esi + 0xc], edi
mov byte [esi + eax + 0x150], bh
mov al, byte [esi + edx + 0x150]
mov edi, dword [esi + 0x20]
mov byte [esi + edi + 0x150], al
mov eax, ecx
inc al
movzx ecx, al
mov al, byte [esi + ecx + 0x150]
mov byte [esi + edx + 0x150], al
mov eax, dword [esi + 0xc]
mov byte [esi + ecx + 0x150], al
mov ecx, eax
movzx eax, byte [esi + edx + 0x150]
mov edx, dword [esi + 0x18]
movzx edx, byte [esi + edx + 0x150]
add edx, eax
mov al, byte [esi + 0x10]
add al, byte [esi + ecx + 0x150]
mov byte [esi + 0x10], al
movzx ecx, al
movzx ecx, byte [esi + ecx + 0x150]
add ecx, edx
mov al, byte [esi + 0x24]
add al, 0xf2
shl bl, 4
add bl, 0x20
or bl, al
movzx edx, byte [esi + edi + 0x150]
add edx, dword [esi + 0xc]
mov edi, 0xff
and edx, edi
mov al, byte [esi + edx + 0x150]
xor al, bl
and ecx, edi
movzx ecx, byte [esi + ecx + 0x150]
xor al, byte [esi + ecx + 0x150]
mov dl, byte [esi + 0x14]
add dl, byte [esi + 0xc]
mov edi, dword [esi + 0x28]
mov cl, byte [edi + 2]
mov ch, byte [edi + 3]
movzx edi, bl
mov dword [esi + 0x18], edi
movzx ebx, dl
mov ah, byte [esi + ebx + 0x150]
movzx edx, byte [esi + edi + 0x150]
mov byte [esi + edi + 0x150], ah
movzx eax, al
mov dword [esi + 0xc], eax
mov al, byte [esi + eax + 0x150]
mov byte [esi + ebx + 0x150], al
mov eax, dword [esi + 0x1c]
add al, 2
movzx eax, al
mov dword [esi + 0x14], eax
mov al, byte [esi + eax + 0x150]
mov edi, dword [esi + 0xc]
mov byte [esi + edi + 0x150], al
mov eax, dword [esi + 0x14]
mov byte [esi + eax + 0x150], dl
mov al, byte [esi + 0x10]
add al, byte [esi + edx + 0x150]
mov byte [esi + 0x10], al
movzx eax, byte [esi + ebx + 0x150]
add eax, edx
shl cl, 4
add cl, 0x20
add ch, 0xf2
or ch, cl
mov edi, 0xff
and eax, edi
xor ch, byte [esi + eax + 0x150]
mov eax, dword [esi + 0xc]
movzx eax, byte [esi + eax + 0x150]
mov edx, dword [esi + 0x18]
movzx edx, byte [esi + edx + 0x150]
add edx, eax
movzx eax, byte [esi + 0x10]
movzx eax, byte [esi + eax + 0x150]
add eax, edx
and eax, edi
movzx eax, byte [esi + eax + 0x150]
xor ch, byte [esi + eax + 0x150]
mov byte [esi + 0x32], ch
mov byte [esi + 0x33], 0
xorpd xmm3, xmm3
movsd xmm5, qword [0x6147a8]
movsd xmm6, qword [0x6147b0]
movsd xmm7, qword [0x6147b8]
xorpd xmm0, xmm0
movsd xmm4, qword [0x612280]
movapd xmm1, xmm3
mulsd xmm1, qword [0x614790]
mulsd xmm1, xmm3
movapd xmm2, xmm3
mulsd xmm2, xmm3
subsd xmm1, xmm2
movapd xmm2, xmm3
mulsd xmm2, qword [0x614798]
mulsd xmm2, xmm3
addsd xmm2, qword [0x6147a0]
divsd xmm1, xmm2
addsd xmm1, xmm0
movapd xmm2, xmm3
mulsd xmm2, xmm5
addsd xmm2, xmm1
movapd xmm0, xmm6
cmpltsd xmm0, xmm1
andpd xmm2, xmm0
andnpd xmm0, xmm1
orpd xmm0, xmm2
addsd xmm3, xmm4
ucomisd xmm7, xmm3
ja 0x43a5a4
xorpd xmm1, xmm1
ucomisd xmm1, xmm0
jbe 0x43a63d
invalid
lea eax, [0x43a615]
mov dword [esi + 0x28], eax
movdqa xmm1, xmmword [0x612110]
xor eax, eax
movdqa xmm2, xmmword [0x612120]
movdqu xmmword [esi + eax + 0x150], xmm1
add eax, 0x10
paddb xmm1, xmm2
cmp eax, 0x100
jne 0x43a658
movsd xmm1, qword [0x612130]
movapd xmm2, xmm0
subsd xmm2, xmm1
cvttsd2si eax, xmm2
lea ecx, [0x43a619]
mov dword [esi + 0x24], ecx
xor eax, 0x80000000
cvttsd2si ecx, xmm0
ucomisd xmm0, xmm1
cmovae ecx, eax
mov eax, ecx
shr eax, 0x18
mov dword [esi + 0x20], eax
mov dword [esi + 0x1c], ecx
shr ecx, 0x10
mov dword [esi + 0x2c], ecx
mov edi, 0xff
xor ebx, ebx
xor ecx, ecx
xor edx, edx
inc edx
cmp edi, 2
jb 0x43a6c8
xor edx, edx
inc edx
add edx, edx
inc edx
cmp edx, edi
jb 0x43a6c1
mov dword [esi + 0xc], edx
mov dword [esi + 0x10], edi
mov dword [esi + 0x18], 0xc
cmp ebx, 3
ja case.default.0x43a6da
jmp dword [ebx*4 + 0x614948]
movzx eax, cl
add eax, esi
add eax, 0x150
mov ecx, dword [esi + 0x1c]
jmp 0x43a70c
movzx eax, cl
add eax, esi
add eax, 0x150
mov ecx, dword [esi + 0x2c]
jmp 0x43a70c
movzx eax, cl
add eax, esi
add eax, 0x150
mov ecx, dword [esi + 0x20]
jmp 0x43a731
movzx eax, cl
add eax, esi
add eax, 0x150
mov ecx, dword [esi + 0x1c]
mov cl, ch
jmp 0x43a731
movzx eax, cl
mov cl, byte [esi + eax + 0x150]
mov eax, dword [esi + 0x24]
add eax, ebx
add eax, 0xfffffffc
add cl, byte [eax]
inc ebx
movzx eax, cl
add cl, 0x23
cmp ebx, 0x22
movzx ecx, cl
cmovbe ecx, eax
mov eax, 0
cmova ebx, eax
movzx edx, cl
mov eax, dword [esi + 0xc]
mov edi, edx
mov dword [esi + 0x14], edx
and eax, edx
dec dword [esi + 0x18]
je 0x43a768
cmp eax, dword [esi + 0x10]
ja 0x43a6d5
jmp 0x43a76f
xor edx, edx
div dword [esi + 0x10]
mov eax, edx
mov edi, dword [esi + 0x10]
cmp edi, eax
je 0x43a7a0
mov dl, byte [esi + edi + 0x150]
xor dl, byte [esi + eax + 0x150]
mov byte [esi + edi + 0x150], dl
xor dl, byte [esi + eax + 0x150]
mov byte [esi + eax + 0x150], dl
xor byte [esi + edi + 0x150], dl
dec edi
jne 0x43a6b6
movzx eax, byte [esi + 0x151]
mov dword [esi + 0x18], eax
mov ecx, eax
mov al, byte [esi + 0x155]
mov byte [esi + 0x10], al
mov bl, byte [esi + ecx + 0x150]
add bl, byte [esi + 0x153]
mov eax, dword [esi + 0x14]
movzx ecx, byte [esi + eax + 0x150]
mov dword [esi + 0x24], ecx
mov edx, dword [esi + 0x28]
mov ah, byte [edx]
mov bh, byte [edx + 1]
movzx edi, bl
mov al, byte [esi + edi + 0x150]
movzx edx, byte [esi + 0x157]
mov dword [esi + 0x14], edx
movzx edx, byte [esi + ecx + 0x150]
mov dword [esi + 0xc], edx
mov byte [esi + ecx + 0x150], al
mov ecx, dword [esi + 0x14]
mov al, byte [esi + ecx + 0x150]
mov byte [esi + edi + 0x150], al
mov edx, dword [esi + 0x18]
mov al, dl
inc al
movzx edx, al
mov dword [esi + 0x1c], edx
mov al, byte [esi + edx + 0x150]
mov byte [esi + ecx + 0x150], al
mov edx, dword [esi + 0xc]
mov ecx, dword [esi + 0x1c]
mov byte [esi + ecx + 0x150], dl
add bh, 0x57
shl ah, 4
add ah, 0xf0
or ah, bh
movzx ecx, byte [esi + edi + 0x150]
add ecx, edx
mov edi, 0xff
and ecx, edi
movzx edi, ah
xor ah, byte [esi + ecx + 0x150]
mov ecx, dword [esi + 0x14]
movzx ecx, byte [esi + ecx + 0x150]
mov edx, dword [esi + 0x24]
movzx edx, byte [esi + edx + 0x150]
add edx, ecx
mov al, byte [esi + 0x10]
mov ecx, dword [esi + 0xc]
add al, byte [esi + ecx + 0x150]
mov byte [esi + 0x10], al
movzx ecx, al
movzx ecx, byte [esi + ecx + 0x150]
add ecx, edx
mov edx, 0xff
and ecx, edx
movzx ecx, byte [esi + ecx + 0x150]
xor ah, byte [esi + ecx + 0x150]
add bl, byte [esi + 0xc]
mov edx, dword [esi + 0x28]
mov cl, byte [edx + 2]
mov dl, byte [edx + 3]
movzx ebx, bl
mov dword [esi + 0x24], ebx
mov dh, byte [esi + ebx + 0x150]
mov dword [esi + 0x1c], edi
movzx ebx, byte [esi + edi + 0x150]
mov dword [esi + 0xc], ebx
mov byte [esi + edi + 0x150], dh
movzx ebx, ah
mov dword [esi + 0x14], ebx
mov ah, byte [esi + ebx + 0x150]
mov edi, dword [esi + 0x24]
mov byte [esi + edi + 0x150], ah
mov eax, dword [esi + 0x18]
add al, 2
movzx eax, al
mov ch, byte [esi + eax + 0x150]
mov byte [esi + ebx + 0x150], ch
mov ebx, dword [esi + 0xc]
mov byte [esi + eax + 0x150], bl
movzx eax, byte [esi + edi + 0x150]
mov dh, byte [esi + 0x10]
mov ebx, dword [esi + 0xc]
add dh, byte [esi + ebx + 0x150]
add eax, ebx
shl cl, 4
add cl, 0xf0
add dl, 0x57
or dl, cl
mov ebx, 0xff
and eax, ebx
xor dl, byte [esi + eax + 0x150]
mov eax, dword [esi + 0x14]
movzx eax, byte [esi + eax + 0x150]
mov ecx, dword [esi + 0x1c]
movzx ecx, byte [esi + ecx + 0x150]
add ecx, eax
movzx eax, dh
movzx eax, byte [esi + eax + 0x150]
add eax, ecx
and eax, ebx
movzx eax, byte [esi + eax + 0x150]
xor dl, byte [esi + eax + 0x150]
mov byte [esi + 0x30], dl
mov byte [esi + 0x31], 0
lea eax, [esi + 0x36]
mov edi, 0x200
push eax
push edi
lea ebx, [esi + 0x464]
push ebx
call fcn.005fedb8
add esp, 0xc
lea eax, [esi + 0x430]
push eax
push edi
push ebx
call fcn.005fedb8
add esp, 0xc
lea eax, [esi + 0x32]
push eax
push edi
push ebx
call fcn.005fedb8
add esp, 0xc
lea eax, [esi + 0x3a0]
push eax
push edi
push ebx
call fcn.005fedb8
add esp, 0xc
lea eax, [esi + 0x34]
push eax
push edi
push ebx
call fcn.005fedb8
add esp, 0xc
lea eax, [esi + 0x400]
push eax
push edi
push ebx
call fcn.005fedb8
add esp, 0xc
lea eax, [esi + 0x30]
push eax
push edi
push ebx
call fcn.005fedb8
add esp, 0xc
lea eax, [esi + 0x3d0]
push eax
push edi
push ebx
call fcn.005fedb8
add esp, 0xc
xor ecx, ecx
lea eax, [esi + 0x150]
push edi
push ecx
push eax
call fcn.005e2800
add esp, 0xc
push ebx
push edi
lea eax, [esi + 0x150]
push eax
call fcn.005fedb8
add esp, 0xc
xor eax, eax
push eax
call fcn.005f73d0
add esp, 4
mov edi, eax
lea ebx, [esi + 0x664]
push 0x104
xor eax, eax
push eax
push ebx
call fcn.005e2800
add esp, 0xc
push 0xa
push ebx
push edi
call fcn.005f5b1c
add esp, 0xc
lea eax, [esi + 0x150]
push eax
call fcn.005fef10
add esp, 4
mov di, 0x2f
mov word [esi + eax + 0x150], di
push ebx
lea eax, [esi + 0x150]
push eax
mov ebx, eax
call fcn.005fecd0
add esp, 8
push ebx
call fcn.005fef10
add esp, 4
mov word [esi + eax + 0x150], di
xorpd xmm3, xmm3
movsd xmm5, qword [0x6147d8]
movsd xmm6, qword [0x6147e0]
movsd xmm7, qword [0x6147e8]
xorpd xmm0, xmm0
movsd xmm4, qword [0x612280]
movapd xmm1, xmm3
mulsd xmm1, qword [0x6147c0]
mulsd xmm1, xmm3
movapd xmm2, xmm3
mulsd xmm2, xmm3
subsd xmm1, xmm2
movapd xmm2, xmm3
mulsd xmm2, qword [0x6147c8]
mulsd xmm2, xmm3
addsd xmm2, qword [0x6147d0]
divsd xmm1, xmm2
addsd xmm1, xmm0
movapd xmm2, xmm3
mulsd xmm2, xmm5
addsd xmm2, xmm1
movapd xmm0, xmm6
cmpltsd xmm0, xmm1
andpd xmm2, xmm0
andnpd xmm0, xmm1
orpd xmm0, xmm2
addsd xmm3, xmm4
ucomisd xmm7, xmm3
ja 0x43aac2
xorpd xmm1, xmm1
ucomisd xmm1, xmm0
jbe 0x43ab8e
mov dl, 0xb0
mov eax, 0xb7b2baba
mov eax, 0xaeb9b4ba
mov al, 0xb0
mov ch, 0xb6
stosd dword es:[edi], eax
mov ch, 0xb0
mov bh, 0xb8
lodsb al, byte [esi]
mov ch, 0xb6
stosd dword es:[edi], eax
mov bl, 0xae
mov ch, 0xb9
mov ch, 0xaf
mov bh, 0xb7
lodsd eax, dword [esi]
mov al, 0xb3
mov ah, 0xb7
mov ch, 0xb3
scasb al, byte es:[edi]
scasd eax, dword es:[edi]
lodsb al, byte [esi]
mov eax, 0xb8adaeaf
mov bh, 0xad
lodsb al, byte [esi]
mov ch, 0xaf
mov bl, 0xab
mov dh, 0xb1
mov ch, 0xab
mov al, 0x56
pop ebx
popal
pop ecx
jno 0x43abbf
push esp
outsd dx, dword fs:[esi]
and byte [edx + 0x24], bl
push edi
dec edx
bound edi, qword [0x407d5d25]
push edx
jp 0x43abb3
js 0x43abfc
pop edx
jmp 0x43b35b
lea edx, [0x43ab33]
movdqa xmm1, xmmword [0x612110]
xor eax, eax
movdqa xmm2, xmmword [0x612120]
movdqu xmmword [esi + eax + 0x50], xmm1
add eax, 0x10
paddb xmm1, xmm2
cmp eax, 0x100
jne 0x43aba6
movsd xmm1, qword [0x612130]
and dword [ecx], esp
movapd xmm2, xmm0
subsd xmm2, xmm1
cvttsd2si eax, xmm2
lea ecx, [0x43ab6f]
mov dword [esi + 0x20], ecx
xor eax, 0x80000000
cvttsd2si ecx, xmm0
ucomisd xmm0, xmm1
cmovae ecx, eax
mov eax, ecx
shr eax, 0x18
mov dword [esi + 0x2c], eax
mov dword [esi + 0x1c], ecx
shr ecx, 0x10
mov dword [esi + 0x28], ecx
mov edi, 0xff
xor ebx, ebx
xor ecx, ecx
mov dword [esi + 0x24], edx
add byte [ecx], dh
invalid
xor edx, edx
inc edx
cmp edi, 2
jb 0x43ac16
xor edx, edx
inc edx
add edx, edx
inc edx
cmp edx, edi
jb 0x43ac0f
mov dword [esi + 0xc], edx
mov dword [esi + 0x10], edi
mov dword [esi + 0x18], 0xc
cmp ebx, 3
ja case.default.0x43ac28
jmp dword [ebx*4 + 0x614958]
movzx eax, cl
add eax, esi
add eax, 0x50
mov ecx, dword [esi + 0x1c]
jmp 0x43ac54
movzx eax, cl
add eax, esi
add eax, 0x50
mov ecx, dword [esi + 0x28]
jmp 0x43ac54
movzx eax, cl
add eax, esi
add eax, 0x50
mov ecx, dword [esi + 0x2c]
jmp 0x43ac74
movzx eax, cl
add eax, esi
add eax, 0x50
mov ecx, dword [esi + 0x1c]
mov cl, ch
jmp 0x43ac74
movzx eax, cl
mov cl, byte [esi + eax + 0x50]
mov eax, dword [esi + 0x20]
add eax, ebx
add eax, 0xfffffffc
add cl, byte [eax]
inc ebx
movzx eax, cl
add cl, 0x1e
cmp ebx, 0x1d
movzx ecx, cl
cmovbe ecx, eax
mov eax, 0
cmova ebx, eax
movzx edx, cl
mov eax, dword [esi + 0xc]
mov edi, edx
mov dword [esi + 0x14], edx
and eax, edx
dec dword [esi + 0x18]
je 0x43acab
cmp eax, dword [esi + 0x10]
ja 0x43ac23
jmp 0x43acb2
xor edx, edx
div dword [esi + 0x10]
mov eax, edx
mov edi, dword [esi + 0x10]
cmp edi, eax
mov edx, dword [esi + 0x24]
je 0x43acd7
mov dl, byte [esi + edi + 0x50]
xor dl, byte [esi + eax + 0x50]
mov byte [esi + edi + 0x50], dl
xor dl, byte [esi + eax + 0x50]
mov byte [esi + eax + 0x50], dl
xor byte [esi + edi + 0x50], dl
mov edx, dword [esi + 0x24]
dec edi
jne 0x43ac04
mov ecx, edx
movzx eax, byte [esi + 0x51]
mov dword [esi + 0x18], eax
mov edi, eax
mov al, byte [esi + 0x55]
mov byte [esi + 0x10], al
mov eax, dword [esi + 0x14]
movzx eax, byte [esi + eax + 0x50]
mov dl, byte [edx]
mov byte [esi + 0x14], dl
mov cl, byte [ecx + 1]
mov byte [esi + 0x1c], cl
mov cl, byte [esi + edi + 0x50]
add cl, byte [esi + 0x53]
mov byte [esi + 0xc], cl
movzx edx, cl
mov cl, byte [esi + edx + 0x50]
mov byte [esi + 0x28], cl
movzx edi, byte [esi + 0x57]
mov dword [esi + 0x20], eax
movzx ecx, byte [esi + eax + 0x50]
mov dword [esi + 0x2c], ecx
mov bl, byte [esi + 0x28]
mov byte [esi + eax + 0x50], bl
mov ah, byte [esi + edi + 0x50]
mov byte [esi + edx + 0x50], ah
mov eax, dword [esi + 0x18]
mov ah, al
inc ah
movzx ebx, ah
mov ah, byte [esi + ebx + 0x50]
mov byte [esi + edi + 0x50], ah
mov byte [esi + ebx + 0x50], cl
mov ah, byte [esi + 0x1c]
add ah, 0x54
mov al, byte [esi + 0x14]
shl al, 4
add al, 0x50
or al, ah
movzx edx, byte [esi + edx + 0x50]
add edx, ecx
mov ecx, 0xff
and edx, ecx
movzx ecx, al
mov dword [esi + 0x1c], ecx
xor al, byte [esi + edx + 0x50]
movzx edx, byte [esi + edi + 0x50]
mov ecx, dword [esi + 0x20]
movzx edi, byte [esi + ecx + 0x50]
add edi, edx
mov bl, byte [esi + 0x10]
mov ecx, dword [esi + 0x2c]
add bl, byte [esi + ecx + 0x50]
mov byte [esi + 0x10], bl
movzx edx, bl
movzx edx, byte [esi + edx + 0x50]
add edx, edi
mov edi, 0xff
and edx, edi
movzx edx, byte [esi + edx + 0x50]
xor al, byte [esi + edx + 0x50]
mov bh, byte [esi + 0xc]
add bh, cl
mov byte [esi + 0xc], bh
mov ecx, dword [esi + 0x24]
mov ah, byte [ecx + 2]
mov cl, byte [ecx + 3]
movzx edi, bh
mov dword [esi + 0x14], edi
mov ch, byte [esi + edi + 0x50]
mov edx, dword [esi + 0x1c]
movzx ebx, byte [esi + edx + 0x50]
mov byte [esi + edx + 0x50], ch
movzx edx, al
mov dword [esi + 0x20], edx
mov al, byte [esi + edx + 0x50]
mov byte [esi + edi + 0x50], al
mov edx, dword [esi + 0x18]
mov al, dl
add al, 2
movzx edx, al
mov al, byte [esi + edx + 0x50]
mov edi, dword [esi + 0x20]
mov byte [esi + edi + 0x50], al
mov byte [esi + edx + 0x50], bl
add cl, 0x54
shl ah, 4
add ah, 0x50
or ah, cl
mov ecx, dword [esi + 0x14]
movzx ecx, byte [esi + ecx + 0x50]
add ecx, ebx
mov edi, 0xff
and ecx, edi
movzx edx, ah
mov dword [esi + 0x14], edx
xor ah, byte [esi + ecx + 0x50]
mov ecx, dword [esi + 0x20]
movzx ecx, byte [esi + ecx + 0x50]
mov edx, dword [esi + 0x1c]
movzx edx, byte [esi + edx + 0x50]
add edx, ecx
mov al, byte [esi + 0x10]
add al, byte [esi + ebx + 0x50]
mov byte [esi + 0x10], al
movzx ecx, al
movzx ecx, byte [esi + ecx + 0x50]
add ecx, edx
and ecx, edi
movzx ecx, byte [esi + ecx + 0x50]
xor ah, byte [esi + ecx + 0x50]
mov al, byte [esi + 0xc]
add al, bl
mov byte [esi + 0x382], ah
mov ecx, dword [esi + 0x24]
mov dl, byte [ecx + 4]
mov cl, byte [ecx + 5]
mov byte [esi + 0x1c], cl
mov byte [esi + 0xc], al
movzx ebx, al
mov dword [esi + 0x20], ebx
mov dh, byte [esi + ebx + 0x50]
mov edi, dword [esi + 0x14]
movzx ecx, byte [esi + edi + 0x50]
mov byte [esi + edi + 0x50], dh
movzx edi, ah
mov dh, byte [esi + edi + 0x50]
mov byte [esi + ebx + 0x50], dh
mov eax, dword [esi + 0x18]
mov dh, al
add dh, 3
movzx eax, dh
mov dh, byte [esi + eax + 0x50]
mov byte [esi + edi + 0x50], dh
mov byte [esi + eax + 0x50], cl
movzx eax, byte [esi + edi + 0x50]
mov edi, dword [esi + 0x14]
movzx ebx, byte [esi + edi + 0x50]
add ebx, eax
mov al, byte [esi + 0x10]
add al, byte [esi + ecx + 0x50]
mov byte [esi + 0x10], al
movzx eax, al
movzx edi, byte [esi + eax + 0x50]
add edi, ebx
mov al, byte [esi + 0x1c]
add al, 0x54
shl dl, 4
add dl, 0x50
or dl, al
mov eax, dword [esi + 0x20]
movzx eax, byte [esi + eax + 0x50]
mov dword [esi + 0x14], ecx
add eax, ecx
mov ecx, 0xff
and eax, ecx
mov al, byte [esi + eax + 0x50]
xor al, dl
and edi, ecx
movzx edi, byte [esi + edi + 0x50]
xor al, byte [esi + edi + 0x50]
mov byte [esi + 0x383], al
mov ecx, dword [esi + 0x18]
add cl, 7
mov dword [esi + 0x18], ecx
xor ecx, ecx
mov ah, byte [esi + 0xc]
add ah, byte [esi + 0x14]
mov edi, dword [esi + 0x24]
mov dh, byte [edi + ecx*2 + 6]
mov byte [esi + 0x14], dh
mov ebx, ecx
mov dword [esi + 0x1c], ecx
movzx ecx, dl
mov dword [esi + 0x2c], ecx
mov dl, byte [edi + ebx*2 + 7]
mov byte [esi + 0xc], ah
movzx edi, ah
mov dword [esi + 0x20], edi
mov dh, byte [esi + edi + 0x50]
movzx ebx, byte [esi + ecx + 0x50]
mov byte [esi + ecx + 0x50], dh
movzx eax, al
mov ch, byte [esi + eax + 0x50]
mov byte [esi + edi + 0x50], ch
mov ecx, dword [esi + 0x18]
mov ch, cl
add ch, 0xfd
movzx edi, ch
mov ch, byte [esi + edi + 0x50]
mov byte [esi + eax + 0x50], ch
mov ecx, ebx
mov byte [esi + edi + 0x50], cl
movzx eax, byte [esi + eax + 0x50]
mov edi, dword [esi + 0x2c]
movzx edi, byte [esi + edi + 0x50]
add edi, eax
mov al, byte [esi + 0x10]
add al, byte [esi + ebx + 0x50]
mov byte [esi + 0x10], al
movzx eax, al
movzx ebx, byte [esi + eax + 0x50]
add ebx, edi
mov al, byte [esi + 0x14]
shl al, 4
add al, 0x50
add dl, 0x54
or dl, al
mov eax, dword [esi + 0x20]
movzx eax, byte [esi + eax + 0x50]
mov dword [esi + 0x14], ecx
add eax, ecx
mov ecx, 0xff
and eax, ecx
mov al, byte [esi + eax + 0x50]
xor al, dl
and ebx, ecx
movzx ecx, byte [esi + ebx + 0x50]
xor al, byte [esi + ecx + 0x50]
mov edi, dword [esi + 0x1c]
mov byte [esi + edi + 0x384], al
mov ecx, dword [esi + 0x18]
inc cl
mov dword [esi + 0x18], ecx
inc edi
mov ecx, edi
cmp edi, 0xb
jne 0x43af05
mov ecx, dword [esi + 0x24]
mov ah, byte [ecx + 0x1c]
mov cl, byte [ecx + 0x1d]
mov byte [esi + 0x1c], cl
movzx edx, dl
mov dword [esi + 0x2c], edx
mov cl, byte [esi + 0xc]
add cl, byte [esi + 0x14]
mov byte [esi + 0xc], cl
movzx edi, cl
mov cl, byte [esi + edi + 0x50]
mov dword [esi + 0x20], edi
movzx ebx, byte [esi + edx + 0x50]
mov byte [esi + edx + 0x50], cl
movzx ecx, al
mov dword [esi + 0x28], ecx
mov al, byte [esi + ecx + 0x50]
mov byte [esi + edi + 0x50], al
mov edx, dword [esi + 0x18]
mov al, dl
add al, 0xfd
movzx ecx, al
mov al, byte [esi + ecx + 0x50]
mov edi, dword [esi + 0x28]
mov byte [esi + edi + 0x50], al
mov byte [esi + ecx + 0x50], bl
mov ecx, ebx
mov dword [esi + 0x14], ebx
mov bl, byte [esi + 0x10]
add bl, byte [esi + ecx + 0x50]
movzx ecx, byte [esi + edi + 0x50]
mov edi, dword [esi + 0x2c]
movzx edi, byte [esi + edi + 0x50]
add edi, ecx
mov byte [esi + 0x10], bl
movzx ecx, bl
movzx ecx, byte [esi + ecx + 0x50]
add ecx, edi
mov al, byte [esi + 0x1c]
add al, 0x54
shl ah, 4
add ah, 0x50
or ah, al
mov edi, dword [esi + 0x20]
movzx edi, byte [esi + edi + 0x50]
add edi, dword [esi + 0x14]
mov ebx, 0xff
and edi, ebx
mov al, byte [esi + edi + 0x50]
xor al, ah
and ecx, ebx
movzx ecx, byte [esi + ecx + 0x50]
xor al, byte [esi + ecx + 0x50]
mov byte [esi + 0x38f], al
xor edi, edi
mov ecx, edx
mov byte [esi + 0x1c], dl
mov cl, byte [esi + 0xc]
add cl, byte [esi + 0x14]
mov edx, dword [esi + 0x24]
mov ch, byte [edx + edi*2 + 0x1e]
mov byte [esi + 0x18], ch
movzx ebx, ah
mov ah, byte [edx + edi*2 + 0x1f]
mov byte [esi + 0xc], cl
movzx edx, cl
mov dword [esi + 0x20], edx
mov cl, byte [esi + edx + 0x50]
mov byte [esi + 0x28], cl
mov ecx, ebx
mov dword [esi + 0x2c], ebx
movzx ebx, byte [esi + ebx + 0x50]
mov dword [esi + 0x14], ebx
mov bl, byte [esi + 0x28]
mov byte [esi + ecx + 0x50], bl
movzx ecx, al
mov al, byte [esi + ecx + 0x50]
mov byte [esi + edx + 0x50], al
mov al, byte [esi + 0x1c]
add al, 0xfe
movzx edx, al
mov al, byte [esi + edx + 0x50]
mov byte [esi + ecx + 0x50], al
mov ebx, dword [esi + 0x14]
mov byte [esi + edx + 0x50], bl
movzx ecx, byte [esi + ecx + 0x50]
mov edx, dword [esi + 0x2c]
movzx edx, byte [esi + edx + 0x50]
add edx, ecx
mov al, byte [esi + 0x10]
add al, byte [esi + ebx + 0x50]
mov byte [esi + 0x10], al
movzx ecx, al
movzx ecx, byte [esi + ecx + 0x50]
add ecx, edx
mov al, byte [esi + 0x18]
shl al, 4
add al, 0x50
add ah, 0x54
or ah, al
mov edx, dword [esi + 0x20]
movzx edx, byte [esi + edx + 0x50]
add edx, ebx
mov ebx, 0xff
and edx, ebx
mov al, byte [esi + edx + 0x50]
xor al, ah
and ecx, ebx
movzx ecx, byte [esi + ecx + 0x50]
xor al, byte [esi + ecx + 0x50]
mov cl, byte [esi + 0x1c]
mov byte [esi + edi + 0x390], al
inc edi
mov edx, ecx
inc dl
cmp edi, 0xc
jne 0x43b086
mov bl, byte [esi + 0xc]
add bl, byte [esi + 0x14]
mov byte [esi + 0xc], bl
movzx edi, ah
mov dword [esi + 0x20], edi
mov edi, dword [esi + 0x24]
mov ah, byte [edi + 0x36]
mov ch, byte [edi + 0x37]
mov edi, dword [esi + 0x20]
movzx edi, byte [esi + edi + 0x50]
mov dword [esi + 0x14], edi
movzx ebx, bl
mov dword [esi + 0x18], edx
mov dword [esi + 0x2c], ebx
mov dl, byte [esi + ebx + 0x50]
mov edi, dword [esi + 0x20]
mov byte [esi + edi + 0x50], dl
movzx edi, al
mov dword [esi + 0x28], edi
mov al, byte [esi + edi + 0x50]
mov byte [esi + ebx + 0x50], al
mov edx, dword [esi + 0x18]
mov al, dl
add al, 0xfe
movzx edx, al
mov al, byte [esi + edx + 0x50]
mov byte [esi + edi + 0x50], al
mov ebx, dword [esi + 0x14]
mov byte [esi + edx + 0x50], bl
add ch, 0x54
shl ah, 4
add ah, 0x50
or ah, ch
mov edx, dword [esi + 0x2c]
movzx edx, byte [esi + edx + 0x50]
add edx, ebx
mov edi, 0xff
and edx, edi
mov edi, 0xff
movzx ebx, ah
mov dword [esi + 0x2c], ebx
xor ah, byte [esi + edx + 0x50]
mov edx, dword [esi + 0x28]
movzx edx, byte [esi + edx + 0x50]
mov ebx, dword [esi + 0x20]
movzx ebx, byte [esi + ebx + 0x50]
add ebx, edx
mov al, byte [esi + 0x10]
mov edx, dword [esi + 0x14]
add al, byte [esi + edx + 0x50]
mov byte [esi + 0x10], al
movzx edx, al
movzx edx, byte [esi + edx + 0x50]
add edx, ebx
and edx, edi
movzx edx, byte [esi + edx + 0x50]
xor ah, byte [esi + edx + 0x50]
mov dl, byte [esi + 0xc]
add dl, byte [esi + 0x14]
mov byte [esi + 0xc], dl
mov byte [esi + 0x39c], ah
mov edi, dword [esi + 0x24]
mov al, byte [edi + 0x38]
mov ch, byte [edi + 0x39]
mov edi, dword [esi + 0x2c]
movzx ebx, byte [esi + edi + 0x50]
mov dword [esi + 0x20], ebx
movzx ebx, dl
mov dl, byte [esi + ebx + 0x50]
mov byte [esi + edi + 0x50], dl
movzx edx, ah
mov dword [esi + 0x28], edx
mov ah, byte [esi + edx + 0x50]
mov byte [esi + ebx + 0x50], ah
movzx edi, cl
mov cl, byte [esi + edi + 0x50]
mov byte [esi + edx + 0x50], cl
mov edx, dword [esi + 0x20]
mov byte [esi + edi + 0x50], dl
add ch, 0x54
shl al, 4
add al, 0x50
or al, ch
movzx edx, byte [esi + ebx + 0x50]
mov ebx, dword [esi + 0x20]
add edx, ebx
mov ecx, 0xff
and edx, ecx
movzx ecx, al
mov dword [esi + 0x14], ecx
xor al, byte [esi + edx + 0x50]
mov ecx, dword [esi + 0x28]
movzx edx, byte [esi + ecx + 0x50]
mov ecx, dword [esi + 0x2c]
movzx edi, byte [esi + ecx + 0x50]
add edi, edx
mov cl, byte [esi + 0x10]
add cl, byte [esi + ebx + 0x50]
mov byte [esi + 0x10], cl
movzx edx, cl
movzx edx, byte [esi + edx + 0x50]
add edx, edi
mov ecx, 0xff
and edx, ecx
movzx edx, byte [esi + edx + 0x50]
xor al, byte [esi + edx + 0x50]
mov cl, byte [esi + 0xc]
add cl, bl
mov byte [esi + 0x39d], al
mov edx, dword [esi + 0x24]
mov ah, byte [edx + 0x3a]
mov dl, byte [edx + 0x3b]
mov byte [esi + 0xc], dl
movzx edi, cl
mov bh, byte [esi + edi + 0x50]
mov ecx, dword [esi + 0x14]
movzx edx, byte [esi + ecx + 0x50]
mov byte [esi + ecx + 0x50], bh
movzx ecx, al
mov al, byte [esi + ecx + 0x50]
mov dword [esi + 0x1c], ecx
mov byte [esi + edi + 0x50], al
movzx ebx, byte [esi + 0x18]
mov al, byte [esi + ebx + 0x50]
mov byte [esi + ecx + 0x50], al
mov byte [esi + ebx + 0x50], dl
mov al, byte [esi + 0x10]
add al, byte [esi + edx + 0x50]
movzx ecx, byte [esi + edi + 0x50]
add ecx, edx
mov dl, byte [esi + 0xc]
add dl, 0x54
shl ah, 4
add ah, 0x50
or ah, dl
mov edi, 0xff
and ecx, edi
xor ah, byte [esi + ecx + 0x50]
mov ecx, dword [esi + 0x1c]
movzx ecx, byte [esi + ecx + 0x50]
mov edx, dword [esi + 0x14]
movzx edx, byte [esi + edx + 0x50]
add edx, ecx
movzx ecx, al
movzx ecx, byte [esi + ecx + 0x50]
add ecx, edx
and ecx, edi
movzx ecx, byte [esi + ecx + 0x50]
xor ah, byte [esi + ecx + 0x50]
mov byte [esi + 0x39e], ah
mov byte [esi + 0x39f], 0
mov dword [esi + 0x778], 0
lea ecx, [esi + 0x150]
lea eax, [esi + 0x382]
push eax
push ecx
call fcn.005fecd0
add esp, 8
lea ecx, [esi + 0x50]
call fcn.0042493c
xor eax, eax
mov dword [esi + 0x38], eax
mov dword [esi + 0x48], eax
mov dword [esi + 0x4c], 0xf
mov byte [esi + 0x38], 0
lea ebx, [esi + 0x150]
push ebx
call fcn.005fef10
add esp, 4
mov edi, eax
cmp eax, 0xf
jbe 0x43b3d9
test edi, edi
js 0x43b6f7
mov ecx, edi
or ecx, 0xf
mov dword [esi + 0x10], edi
js 0x43b3f1
cmp ecx, 0x16
mov edx, 0x16
cmova edx, ecx
lea eax, [edx + 1]
cmp edx, 0xfff
jb 0x43b412
mov dword [esi + 0xc], ecx
jmp 0x43b3fd
lea eax, [esi + 0x38]
mov dword [eax + 0x10], edi
push edi
push ebx
push eax
call fcn.005e2280
add esp, 0xc
mov byte [esi + edi + 0x38], 0
jmp 0x43b44e
mov dword [esi + 0xc], connect
mov eax, connect
mov dword [esi + 0x778], 1
push eax
call fcn.00401ee4
add esp, 4
jmp 0x43b428
mov dword [esi + 0xc], edx
mov dword [esi + 0x778], 1
push eax
call fcn.005db3dd
add esp, 4
mov edi, eax
mov eax, dword [esi + 0xc]
mov ebx, dword [esi + 0x10]
mov dword [esi + 0x48], ebx
mov dword [esi + 0x4c], eax
push ebx
lea eax, [esi + 0x150]
push eax
push edi
call fcn.005e2280
add esp, 0xc
mov byte [edi + ebx], 0
mov dword [esi + 0x38], edi
mov dword [esi + 0x778], 3
lea eax, [esi + 0x38]
lea ecx, [esi + 0x50]
push eax
call fcn.00424c24
mov eax, dword [esi + 0x4c]
cmp eax, 0x10
jb 0x43b49c
mov ecx, dword [esi + 0x38]
lea edi, [eax + 1]
cmp edi, 0x1000
jb 0x43b492
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x43b6e3
add eax, 0x24
mov edi, eax
mov ecx, edx
push edi
push ecx
call fcn.005db412
add esp, 8
mov dword [esi + 0x778], 1
lea ecx, [esi + 0x50]
call fcn.004263fe
lea eax, [esi + 0x50]
push eax
lea eax, [esi + 0x38]
push eax
call fcn.00438e14
add esp, 8
lea eax, [esi + 0x464]
push eax
call fcn.005fef10
add esp, 4
mov word [esi + eax + 0x464], 0x3f
xor eax, eax
mov dword [esi + 0x368], eax
mov dword [esi + 0x378], eax
mov dword [esi + 0x37c], 0xf
mov byte [esi + 0x368], 0
mov eax, dword [esi + 0x48]
cmp eax, 0x17
jbe 0x43b6e8
add eax, 0xffffffe8
cmp eax, 0x28
mov ebx, 0x28
cmovb ebx, eax
lea eax, [esi + 0x50]
mov ecx, dword [eax - 0x18]
add ecx, 0x18
cmp dword [eax - 4], 0xf
cmovbe ecx, eax
cmp ebx, 0x10
jb 0x43b55e
mov dword [esi + 0x18], ecx
mov dword [esi + 0xc], ebx
mov eax, ebx
or eax, 0xf
cmp eax, 0x16
mov ecx, 0x16
cmova ecx, eax
lea eax, [ecx + 1]
mov dword [esi + 0x10], ecx
cmp ecx, 0xfff
jb 0x43b591
mov dword [esi + 0x778], 2
push eax
call fcn.00401ee4
add esp, 4
jmp 0x43b5a4
lea edi, [esi + 0x368]
mov dword [edi + 0x10], ebx
push ebx
push ecx
push edi
call fcn.005e2280
add esp, 0xc
mov byte [esi + ebx + 0x368], 0
mov ebx, dword [edi + 0x14]
cmp ebx, 0xf
ja 0x43b5c4
push edi
lea eax, [esi + 0x464]
push eax
call fcn.005fecd0
jmp 0x43b604
mov dword [esi + 0x778], 2
push eax
call fcn.005db3dd
add esp, 4
mov edi, eax
mov ebx, dword [esi + 0xc]
mov eax, dword [esi + 0x18]
push ebx
push eax
push edi
call fcn.005e2280
add esp, 0xc
mov byte [edi + ebx], 0
mov dword [esi + 0x368], edi
mov ebx, dword [esi + 0x10]
mov edi, dword [esi + 0x368]
push edi
lea eax, [esi + 0x464]
push eax
call fcn.005fecd0
add esp, 8
lea ecx, [ebx + 1]
cmp ecx, 0x1000
jb 0x43b5fd
mov eax, dword [edi - 4]
add edi, 0xfffffffc
sub edi, eax
cmp edi, 0x20
jae 0x43b6e3
add ebx, 0x24
mov ecx, ebx
mov edi, eax
push ecx
push edi
call fcn.005db412
add esp, 8
lea eax, [esi + 0x664]
push eax
lea edi, [esi + 0x464]
push edi
call fcn.005fecd0
add esp, 8
push edi
push dword [ebp + 8]
call fcn.005fecc0
add esp, 8
mov eax, dword [esi + 0x4c]
cmp eax, 0x10
jb 0x43b661
mov ecx, dword [esi + 0x38]
lea edi, [eax + 1]
cmp edi, 0x1000
jb 0x43b657
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x43b6e3
add eax, 0x24
mov edi, eax
mov ecx, edx
push edi
push ecx
call fcn.005db412
add esp, 8
mov eax, dword [esi + 0x78]
cmp eax, 0x10
jb 0x43b695
mov ecx, dword [esi + 0x64]
lea edi, [eax + 1]
cmp edi, 0x1000
jb 0x43b68b
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x43b6e3
add eax, 0x24
mov edi, eax
mov ecx, edx
push edi
push ecx
call fcn.005db412
add esp, 8
mov eax, dword [esi + 0x364]
cmp eax, 0x10
jb 0x43b6cf
mov ecx, dword [esi + 0x350]
lea edi, [eax + 1]
cmp edi, 0x1000
jb 0x43b6c5
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x43b6e3
add eax, 0x24
mov edi, eax
mov ecx, edx
push edi
push ecx
call fcn.005db412
add esp, 8
mov eax, dword [esi + 0x770]
mov dword fs:[0], eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
call fcn.005f5844
mov dword [esi + 0x778], 2
call fcn.0043fa68
mov dword [esi + 0x778], 1
call fcn.00401eda
push ebp
sub esp, 0xc
lea esi, [ebp - 0x77c]
mov ebp, dword [esi + 0x768]
mov eax, dword [esi + 0x4c]
cmp eax, 0x10
jb 0x43b74a
mov ecx, dword [esi + 0x38]
lea edi, [eax + 1]
cmp edi, 0x1000
jb 0x43b740
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x43b761
add eax, 0x24
mov edi, eax
mov ecx, edx
push edi
push ecx
call fcn.005db412
add esp, 8
mov dword [esi + 0x48], 0
mov dword [esi + 0x4c], 0xf
mov byte [esi + 0x38], 0
add esp, 0xc
pop ebp
ret
call fcn.005f5844
push ebp
sub esp, 0xc
lea esi, [ebp - 0x77c]
mov ebp, dword [esi + 0x768]
mov eax, dword [esi + 0x4c]
cmp eax, 0x10
jb 0x43b7aa
mov ecx, dword [esi + 0x38]
lea edi, [eax + 1]
cmp edi, 0x1000
jb 0x43b7a0
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x43b7c1
add eax, 0x24
mov edi, eax
mov ecx, edx
push edi
push ecx
call fcn.005db412
add esp, 8
mov dword [esi + 0x48], 0
mov dword [esi + 0x4c], 0xf
mov byte [esi + 0x38], 0
add esp, 0xc
pop ebp
ret
call fcn.005f5844
push ebp
sub esp, 0xc
lea esi, [ebp - 0x77c]
mov ebp, dword [esi + 0x768]
mov eax, dword [esi + 0x78]
cmp eax, 0x10
jb 0x43b80a
mov ecx, dword [esi + 0x64]
lea edi, [eax + 1]
cmp edi, 0x1000
jb 0x43b800
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x43b80f
add eax, 0x24
mov edi, eax
mov ecx, edx
push edi
push ecx
call fcn.005db412
add esp, 8
add esp, 0xc
pop ebp
ret
call fcn.005f5844
push ebp
sub esp, 0xc
lea esi, [ebp - 0x77c]
mov ebp, dword [esi + 0x768]
mov eax, dword [esi + 0x364]
cmp eax, 0x10
jb 0x43b85e
mov ecx, dword [esi + 0x350]
lea edi, [eax + 1]
cmp edi, 0x1000
jb 0x43b854
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x43b863
add eax, 0x24
mov edi, eax
mov ecx, edx
push edi
push ecx
call fcn.005db412
add esp, 8
add esp, 0xc
pop ebp
ret
call fcn.005f5844