Function at 0x43583a
Capabilities:
Encode data using xor
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x370
mov esi, esp
mov dword [esi + 0x358], ebp
mov dword [esi + 0x60], ecx
lea eax, [esi + 0x360]
mov dword [eax - 4], esp
mov dword [eax + 8], 0xffffffff
mov dword [eax + 4], 0x4381a0
mov ecx, dword fs:[0]
mov dword [eax], ecx
mov dword fs:[0], eax
mov dword [esi + 0x64], 0
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov dword [esi + 0x44], eax
xorpd xmm0, xmm0
movsd xmm4, qword [0x6144b0]
movsd xmm5, qword [0x6144b8]
movsd xmm6, qword [0x6120f8]
movsd xmm7, qword [0x6144c0]
xorpd xmm3, xmm3
movapd xmm1, xmm3
mulsd xmm1, qword [0x6144a0]
mulsd xmm1, xmm3
movapd xmm2, xmm3
mulsd xmm2, xmm3
subsd xmm1, xmm2
movapd xmm2, xmm3
mulsd xmm2, qword [0x6144a8]
mulsd xmm2, xmm3
addsd xmm2, qword [0x6127c8]
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 0x4358b2
xorpd xmm1, xmm1
ucomisd xmm1, xmm0
jbe 0x435961
push esi
pushal
pop esi
pop eax
push 0x5c
push esi
imul ebx, dword [edx + 0x69], 0x6b57625f
pop ebx
arpl word [eax + 0x67], sp
arpl word [ebx + 0x59], sp
dec si
and dword [ebx], ebp
das
aaa
push 0x38
jbe 0x4359aa
push ecx
dec edi
and eax, dword [edi + 0x2b]
cmp eax, 0x28493076
inc esi
push eax
jbe 0x435981
sub dword [eax], edi
cmp ebp, dword [ecx + 0x70]
push 0x509e9
add byte [ebp + 0x43592305], cl
add byte [ecx + 0xf662446], cl
outsd dx, dword [esi]
or eax, 0x612110
lea eax, [0x435923]
mov dword [esi + 0x24], eax
movdqa xmm1, xmmword [0x612110]
xor eax, eax
movdqa xmm2, xmmword [0x612120]
movdqu xmmword [esi + eax + 0x68], xmm1
add eax, 0x10
paddb xmm1, xmm2
push 0x6610c083
paddb mm1, mm2
cmp eax, 0x100
jne 0x43597c
movsd xmm1, qword [0x612130]
movapd xmm2, xmm0
subsd xmm2, xmm1
cvttsd2si eax, xmm2
lea ecx, [0x43593d]
mov dword [esi + 0x1c], ecx
xor eax, 0x80000000
cvttsd2si ecx, xmm0
ucomisd xmm0, xmm1
cmovae ecx, eax
mov eax, ecx
shr eax, 0x18
mov dword [esi + 0x18], eax
mov dword [esi + 0x14], ecx
shr ecx, 0x10
mov dword [esi + 0x20], ecx
mov edi, 0xff
xor ecx, ecx
xor ebx, ebx
xor edx, edx
inc edx
cmp edi, 2
jb 0x4359e9
xor edx, edx
inc edx
add edx, edx
inc edx
cmp edx, edi
jb 0x4359e2
mov dword [esi + 0x10], edx
mov dword [esi + 4], 0xc
mov dword [esi + 0xc], edi
cmp ebx, 3
ja case.default.0x4359fb
jmp dword [ebx*4 + 0x61464c]
movzx eax, cl
lea ecx, [esi + eax]
add ecx, 0x68
mov eax, dword [esi + 0x14]
jmp 0x435a2a
movzx eax, cl
lea ecx, [esi + eax]
add ecx, 0x68
mov eax, dword [esi + 0x20]
jmp 0x435a2a
movzx eax, cl
lea ecx, [esi + eax]
add ecx, 0x68
mov eax, dword [esi + 0x18]
jmp 0x435a4b
movzx eax, cl
lea ecx, [esi + eax]
add ecx, 0x68
mov eax, dword [esi + 0x14]
mov al, ah
jmp 0x435a4b
movzx eax, cl
mov al, byte [esi + eax + 0x68]
mov ecx, dword [esi + 0x1c]
add ecx, ebx
add ecx, 0xfffffffc
add al, byte [ecx]
inc ebx
movzx edi, al
add al, 0x23
cmp ebx, 0x22
mov ecx, 0
cmova ebx, ecx
movzx ecx, al
cmovbe ecx, edi
movzx edx, cl
mov eax, dword [esi + 0x10]
mov edi, edx
mov dword [esi + 8], edx
and eax, edx
mov edi, dword [esi + 4]
dec edi
je 0x435a87
mov dword [esi + 4], edi
mov edi, dword [esi + 0xc]
cmp eax, edi
ja 0x4359f6
jmp 0x435a90
xor edx, edx
mov edi, dword [esi + 0xc]
div edi
mov eax, edx
cmp edi, eax
je 0x435aac
mov dl, byte [esi + edi + 0x68]
xor dl, byte [esi + eax + 0x68]
mov byte [esi + edi + 0x68], dl
xor dl, byte [esi + eax + 0x68]
mov byte [esi + eax + 0x68], dl
xor byte [esi + edi + 0x68], dl
dec edi
jne 0x4359d7
movzx eax, byte [esi + 0x69]
mov dword [esi + 0xc], eax
mov ebx, eax
mov al, byte [esi + 0x6d]
mov edx, dword [esi + 8]
movzx ecx, byte [esi + edx + 0x68]
mov edi, dword [esi + 0x24]
mov dh, byte [edi]
mov dl, byte [edi + 1]
mov byte [esi + 8], dl
mov dl, byte [esi + ebx + 0x68]
add dl, byte [esi + 0x6b]
movzx edi, dl
mov dword [esi + 0x10], edi
mov ah, byte [esi + edi + 0x68]
movzx edi, byte [esi + 0x6f]
mov dword [esi + 0x14], ecx
movzx ebx, byte [esi + ecx + 0x68]
mov dword [esi + 4], ebx
mov byte [esi + ecx + 0x68], ah
mov ah, byte [esi + edi + 0x68]
mov ecx, dword [esi + 0x10]
mov byte [esi + ecx + 0x68], ah
mov ecx, dword [esi + 0xc]
mov ah, cl
inc ah
movzx ecx, ah
mov ah, byte [esi + ecx + 0x68]
mov byte [esi + edi + 0x68], ah
mov ebx, dword [esi + 4]
mov byte [esi + ecx + 0x68], bl
mov cl, byte [esi + 8]
add cl, 0xa0
shl dh, 4
add dh, 0xa0
or dh, cl
mov ecx, dword [esi + 0x10]
movzx ecx, byte [esi + ecx + 0x68]
add ecx, ebx
mov ebx, 0xff
and ecx, ebx
movzx ebx, dh
mov dword [esi + 0x10], ebx
xor dh, byte [esi + ecx + 0x68]
movzx ecx, byte [esi + edi + 0x68]
mov edi, dword [esi + 0x14]
movzx edi, byte [esi + edi + 0x68]
add edi, ecx
mov ebx, dword [esi + 4]
add al, byte [esi + ebx + 0x68]
movzx ecx, al
movzx ecx, byte [esi + ecx + 0x68]
add ecx, edi
mov edi, 0xff
and ecx, edi
movzx ecx, byte [esi + ecx + 0x68]
xor dh, byte [esi + ecx + 0x68]
mov ecx, dword [esi + 0x24]
add dl, bl
mov ah, byte [ecx + 2]
mov cl, byte [ecx + 3]
mov byte [esi + 8], cl
movzx edi, dl
mov dword [esi + 0x14], edi
mov cl, byte [esi + edi + 0x68]
mov byte [esi + 0x1c], cl
mov ecx, dword [esi + 0x10]
movzx ebx, byte [esi + ecx + 0x68]
mov dword [esi + 4], ebx
mov bl, byte [esi + 0x1c]
mov byte [esi + ecx + 0x68], bl
movzx ebx, dh
mov dh, byte [esi + ebx + 0x68]
mov byte [esi + edi + 0x68], dh
mov ecx, dword [esi + 0xc]
mov dh, cl
add dh, 2
movzx edi, dh
mov dh, byte [esi + edi + 0x68]
mov byte [esi + ebx + 0x68], dh
mov ecx, dword [esi + 4]
mov byte [esi + edi + 0x68], cl
movzx edi, byte [esi + ebx + 0x68]
mov ebx, dword [esi + 0x10]
movzx ebx, byte [esi + ebx + 0x68]
add ebx, edi
add al, byte [esi + ecx + 0x68]
movzx edi, al
movzx edi, byte [esi + edi + 0x68]
add edi, ebx
mov dh, byte [esi + 8]
add dh, 0xa0
shl ah, 4
add ah, 0xa0
or ah, dh
mov ebx, dword [esi + 0x14]
movzx ebx, byte [esi + ebx + 0x68]
add ebx, ecx
mov ecx, 0xff
and ebx, ecx
mov dh, byte [esi + ebx + 0x68]
xor dh, ah
and edi, ecx
movzx edi, byte [esi + edi + 0x68]
xor dh, byte [esi + edi + 0x68]
movsx edi, dh
mov word [esi + 0x2de], di
mov ecx, dword [esi + 0xc]
add cl, 3
movzx edi, cl
mov ecx, dword [esi + 0x24]
mov dword [esi + 0xc], edi
xor edi, edi
mov byte [esi + 0x10], al
add dl, byte [esi + 4]
mov byte [esi + 0x14], dl
movzx ebx, ah
mov dword [esi + 0x18], ebx
mov dword [esi + 0x20], edi
mov ah, byte [ecx + edi*2 + 4]
mov al, byte [ecx + edi*2 + 5]
mov byte [esi + 8], al
movzx ecx, dl
mov dword [esi + 0x1c], ecx
mov dl, byte [esi + ecx + 0x68]
movzx edi, byte [esi + ebx + 0x68]
mov dword [esi + 4], edi
mov byte [esi + ebx + 0x68], dl
movzx edx, dh
mov al, byte [esi + edx + 0x68]
mov byte [esi + ecx + 0x68], al
mov ecx, dword [esi + 0xc]
mov edi, dword [esi + 0x20]
add ecx, edi
mov ebx, 0xff
and ecx, ebx
mov al, byte [esi + ecx + 0x68]
mov byte [esi + edx + 0x68], al
mov al, byte [esi + 0x10]
mov ebx, dword [esi + 4]
mov byte [esi + ecx + 0x68], bl
movzx ecx, byte [esi + edx + 0x68]
mov edx, dword [esi + 0x18]
movzx edx, byte [esi + edx + 0x68]
add edx, ecx
add al, byte [esi + ebx + 0x68]
movzx ecx, al
movzx ecx, byte [esi + ecx + 0x68]
add ecx, edx
mov dl, byte [esi + 8]
add dl, 0xa0
shl ah, 4
add ah, 0xa0
or ah, dl
mov edx, dword [esi + 0x1c]
movzx edx, byte [esi + edx + 0x68]
add edx, ebx
mov ebx, 0xff
and edx, ebx
mov dh, byte [esi + edx + 0x68]
mov dl, byte [esi + 0x14]
xor dh, ah
mov ebx, 0xff
and ecx, ebx
movzx ecx, byte [esi + ecx + 0x68]
xor dh, byte [esi + ecx + 0x68]
movsx ecx, dh
mov ebx, edi
mov word [esi + edi*2 + 0x2e0], cx
mov ecx, dword [esi + 0x24]
inc ebx
mov edi, ebx
cmp ebx, 4
jne 0x435c2d
add dword [esi + 0xc], edi
mov dword [esi + 8], 0
mov byte [esi + 0x10], al
add dl, byte [esi + 4]
mov byte [esi + 0x14], dl
movzx edi, ah
mov dword [esi + 0x20], edi
mov ebx, dword [esi + 8]
mov ah, byte [ecx + ebx*2 + 0xc]
mov al, byte [ecx + ebx*2 + 0xd]
mov byte [esi + 0x1c], al
movzx ecx, dl
mov dword [esi + 0x18], ecx
mov dl, byte [esi + ecx + 0x68]
movzx ebx, byte [esi + edi + 0x68]
mov byte [esi + edi + 0x68], dl
movzx edi, dh
mov al, byte [esi + edi + 0x68]
mov byte [esi + ecx + 0x68], al
movzx edx, byte [esi + 0xc]
mov al, byte [esi + edx + 0x68]
mov byte [esi + edi + 0x68], al
mov dword [esi + 4], ebx
mov byte [esi + edx + 0x68], bl
movzx ecx, byte [esi + edi + 0x68]
mov edx, dword [esi + 0x20]
movzx edx, byte [esi + edx + 0x68]
add edx, ecx
mov al, byte [esi + 0x10]
add al, byte [esi + ebx + 0x68]
mov byte [esi + 0x10], al
movzx ecx, al
movzx ecx, byte [esi + ecx + 0x68]
add ecx, edx
mov al, byte [esi + 0x1c]
add al, 0xa0
shl ah, 4
add ah, 0xa0
or ah, al
mov edx, dword [esi + 0x18]
movzx edx, byte [esi + edx + 0x68]
add edx, ebx
mov edi, 0xff
and edx, edi
mov dh, byte [esi + edx + 0x68]
mov dl, byte [esi + 0x14]
xor dh, ah
and ecx, edi
movzx ecx, byte [esi + ecx + 0x68]
xor dh, byte [esi + ecx + 0x68]
movsx ecx, dh
mov edi, dword [esi + 8]
mov word [esi + edi*2 + 0x2e8], cx
mov ecx, dword [esi + 0x24]
mov ebx, dword [esi + 0xc]
inc bl
mov dword [esi + 0xc], ebx
inc edi
mov dword [esi + 8], edi
cmp edi, 6
jne 0x435d0a
add dl, byte [esi + 4]
mov al, byte [ecx + 0x18]
mov cl, byte [ecx + 0x19]
mov byte [esi + 8], cl
movzx edi, ah
mov dword [esi + 4], edi
movzx ebx, dl
mov ah, byte [esi + ebx + 0x68]
movzx ecx, byte [esi + edi + 0x68]
mov byte [esi + edi + 0x68], ah
movzx edi, dh
mov ah, byte [esi + edi + 0x68]
mov byte [esi + ebx + 0x68], ah
movzx edx, byte [esi + 0xc]
mov ah, byte [esi + edx + 0x68]
mov byte [esi + edi + 0x68], ah
mov byte [esi + edx + 0x68], cl
mov ah, byte [esi + 0x10]
add ah, byte [esi + ecx + 0x68]
movzx edx, byte [esi + ebx + 0x68]
add edx, ecx
mov cl, byte [esi + 8]
add cl, 0xa0
shl al, 4
add al, 0xa0
or al, cl
mov ecx, 0xff
and edx, ecx
xor al, byte [esi + edx + 0x68]
movzx edx, byte [esi + edi + 0x68]
mov edi, dword [esi + 4]
movzx edi, byte [esi + edi + 0x68]
add edi, edx
movzx edx, ah
movzx edx, byte [esi + edx + 0x68]
add edx, edi
and edx, ecx
movzx ecx, byte [esi + edx + 0x68]
xor al, byte [esi + ecx + 0x68]
movsx eax, al
mov word [esi + 0x2f4], ax
mov word [esi + 0x2f6], 0
mov dword [esi + 0x368], 0xffffffff
push 4
call fcn.005db3dd
add esp, 4
mov dword [esi + 0x28], eax
mov dword [esi + 0x368], 0
lea eax, [esi + 0x2de]
lea ecx, [esi + 0x68]
push eax
call fcn.00406642
mov ecx, dword [esi + 0x28]
mov dword [ecx], 0
mov dword [esi + 0x368], 1
push 2
lea eax, [esi + 0x68]
push eax
call fcn.0044527c
push dword [esi + 0x80]
call fcn.005fd8d5
add esp, 4
mov ecx, dword [esi + 0x7c]
cmp ecx, 8
mov ebx, dword [esi + 0x28]
jb 0x435f06
mov eax, dword [esi + 0x68]
lea edx, [ecx + ecx]
add edx, 2
cmp edx, 0x1000
jb 0x435efc
mov edx, eax
add edx, 0xfffffffc
mov eax, dword [eax - 4]
sub edx, eax
cmp edx, 0x20
jae 0x43774e
add ecx, ecx
add ecx, 0x25
mov edx, ecx
push edx
push eax
call fcn.005db412
add esp, 8
xorpd xmm4, xmm4
movsd xmm5, qword [0x6144d8]
movsd xmm6, qword [0x6144e0]
movsd xmm7, qword [0x612160]
movsd xmm2, qword [0x6144e8]
xorpd xmm0, xmm0
movapd xmm1, xmm4
mulsd xmm1, qword [0x6144c8]
mulsd xmm1, xmm4
movapd xmm3, xmm4
mulsd xmm3, xmm4
subsd xmm1, xmm3
movapd xmm3, xmm4
mulsd xmm3, qword [0x612db0]
mulsd xmm3, xmm4
addsd xmm3, qword [0x6144d0]
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 0x435f2e
xorpd xmm1, xmm1
ucomisd xmm1, xmm0
lea edi, [esi + 0x68]
jbe 0x435fee
sub byte [esi], dl
pop es
sub eax, 0x2c062c07
adc al, 0x2c
adc al, 0x29
or eax, 0x102d0525
sub ecx, dword [ebx]
sub cl, byte [esi]
sub byte [eax + esi], cl
adc al, 0x2d
or ch, byte [edi]
pop es
xor cl, byte [eax]
sub dword [edi], eax
inc eax
outsb dx, byte [esi]
aas
push ebp
and bh, byte [edi]
push ecx
push ecx
pop ecx
push esp
xor al, 0x65
cmp eax, 0x7d6f394a
xor al, 0x29
jo 0x436017
cmp dword [edx + 0x39], ebx
dec edx
dec ebx
mov dword [esi + 0x368], 0xffffffff
jmp 0x43665f
lea edx, [0x435fa2]
movdqa xmm1, xmmword [0x612110]
xor eax, eax
movdqa xmm2, xmmword [0x612120]
movdqu xmmword [esi + eax + 0x68], xmm1
add eax, 0x10
paddb xmm1, xmm2
cmp eax, 0x100
jne 0x436006
add byte [ebp - 0x14], dh
movsd xmm1, qword [0x612130]
movapd xmm2, xmm0
subsd xmm2, xmm1
cvttsd2si eax, xmm2
lea ecx, [0x435fc4]
mov dword [esi + 0x18], 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 + 0x14], ecx
shr ecx, 0x10
mov dword [esi + 0x24], ecx
mov eax, 0xff
xor ebx, ebx
xor ecx, ecx
mov dword [esi + 0x1c], edx
xor edi, edi
inc edi
cmp eax, 2
jb 0x436076
xor edi, edi
inc edi
add edi, edi
inc edi
cmp edi, eax
jb 0x43606f
mov dword [esi + 0x10], eax
mov edx, 0xc
cmp ebx, 3
mov dword [esi + 0xc], edx
ja case.default.0x436086
jmp dword [ebx*4 + 0x61465c]
movzx eax, cl
add eax, esi
add eax, 0x68
mov ecx, dword [esi + 0x14]
jmp 0x4360b2
movzx eax, cl
add eax, esi
add eax, 0x68
mov ecx, dword [esi + 0x24]
jmp 0x4360b2
movzx eax, cl
add eax, esi
add eax, 0x68
mov ecx, dword [esi + 0x20]
jmp 0x4360d2
movzx eax, cl
add eax, esi
add eax, 0x68
mov ecx, dword [esi + 0x14]
mov cl, ch
jmp 0x4360d2
movzx eax, cl
mov cl, byte [esi + eax + 0x68]
mov eax, dword [esi + 0x18]
add eax, ebx
add eax, 0xfffffffc
add cl, byte [eax]
inc ebx
movzx eax, cl
add cl, 0x1f
cmp ebx, 0x1e
movzx ecx, cl
cmovbe ecx, eax
mov eax, 0
cmova ebx, eax
mov dword [esi + 4], ecx
movzx edx, cl
mov ecx, edi
mov eax, edi
mov edi, edx
mov dword [esi + 8], edx
and eax, edx
mov edx, dword [esi + 0xc]
dec edx
je 0x436113
cmp eax, dword [esi + 0x10]
mov edi, ecx
mov ecx, dword [esi + 4]
ja 0x43607e
jmp 0x43611d
xor edx, edx
div dword [esi + 0x10]
mov eax, edx
mov ecx, dword [esi + 4]
mov edi, dword [esi + 0x10]
cmp edi, eax
mov edx, dword [esi + 0x1c]
je 0x436142
mov dl, byte [esi + edi + 0x68]
xor dl, byte [esi + eax + 0x68]
mov byte [esi + edi + 0x68], dl
xor dl, byte [esi + eax + 0x68]
mov byte [esi + eax + 0x68], dl
xor byte [esi + edi + 0x68], dl
mov edx, dword [esi + 0x1c]
dec edi
mov eax, edi
jne 0x436064
movzx eax, byte [esi + 0x69]
mov dword [esi + 4], eax
mov edi, eax
mov al, byte [esi + 0x6d]
mov byte [esi + 0xc], al
mov ecx, dword [esi + 8]
movzx ebx, byte [esi + ecx + 0x68]
mov ecx, edx
mov dh, byte [edx]
mov dl, byte [esi + edi + 0x68]
add dl, byte [esi + 0x6b]
mov al, byte [ecx + 1]
mov byte [esi + 0x20], al
movzx eax, dl
mov dword [esi + 0x10], eax
mov al, byte [esi + eax + 0x68]
movzx edi, byte [esi + 0x6f]
mov ecx, ebx
mov dword [esi + 0x14], ebx
movzx ebx, byte [esi + ebx + 0x68]
mov byte [esi + ecx + 0x68], al
mov dword [esi + 0x18], edi
mov cl, byte [esi + edi + 0x68]
mov eax, dword [esi + 0x10]
mov byte [esi + eax + 0x68], cl
mov al, byte [esi + 0xc]
mov ecx, dword [esi + 4]
inc cl
movzx ecx, cl
mov dword [esi + 8], ecx
mov ecx, dword [esi + 8]
mov cl, byte [esi + ecx + 0x68]
mov byte [esi + edi + 0x68], cl
mov ecx, dword [esi + 8]
mov byte [esi + ecx + 0x68], bl
mov cl, byte [esi + 0x20]
add cl, 0xfb
shl dh, 4
add dh, 0xd0
or dh, cl
mov ecx, dword [esi + 0x10]
movzx ecx, byte [esi + ecx + 0x68]
add ecx, ebx
mov edi, 0xff
and ecx, edi
movzx edi, dh
mov dword [esi + 8], edi
xor dh, byte [esi + ecx + 0x68]
add al, byte [esi + ebx + 0x68]
mov ecx, dword [esi + 0x18]
movzx ecx, byte [esi + ecx + 0x68]
mov edi, dword [esi + 0x14]
movzx edi, byte [esi + edi + 0x68]
add edi, ecx
movzx ecx, al
movzx ecx, byte [esi + ecx + 0x68]
add ecx, edi
mov edi, 0xff
and ecx, edi
movzx ecx, byte [esi + ecx + 0x68]
xor dh, byte [esi + ecx + 0x68]
mov ecx, dword [esi + 0x1c]
add dl, bl
mov ah, byte [ecx + 2]
mov bl, byte [ecx + 3]
mov byte [esi + 0xc], bl
movzx edi, dl
mov dword [esi + 0x14], edi
mov cl, byte [esi + edi + 0x68]
mov byte [esi + 0x18], cl
mov ecx, dword [esi + 8]
movzx ebx, byte [esi + ecx + 0x68]
mov dword [esi + 0x10], ebx
mov bl, byte [esi + 0x18]
mov byte [esi + ecx + 0x68], bl
movzx ecx, dh
mov dh, byte [esi + ecx + 0x68]
mov byte [esi + edi + 0x68], dh
mov ebx, dword [esi + 4]
mov dh, bl
add dh, 2
movzx edi, dh
mov dh, byte [esi + edi + 0x68]
mov byte [esi + ecx + 0x68], dh
mov ebx, dword [esi + 0x10]
mov byte [esi + edi + 0x68], bl
movzx ecx, byte [esi + ecx + 0x68]
mov dword [esi + 0x18], ecx
mov edi, dword [esi + 8]
movzx ecx, byte [esi + edi + 0x68]
add ecx, dword [esi + 0x18]
add al, byte [esi + ebx + 0x68]
movzx edi, al
movzx ebx, byte [esi + edi + 0x68]
add ebx, ecx
mov dh, byte [esi + 0xc]
add dh, 0xfb
shl ah, 4
add ah, 0xd0
or ah, dh
mov ecx, dword [esi + 0x14]
movzx edi, byte [esi + ecx + 0x68]
add edi, dword [esi + 0x10]
mov ecx, 0xff
and edi, ecx
mov dh, byte [esi + edi + 0x68]
xor dh, ah
and ebx, ecx
movzx edi, byte [esi + ebx + 0x68]
xor dh, byte [esi + edi + 0x68]
mov byte [esi + 0x2ab], dh
mov ebx, dword [esi + 4]
add bl, 5
mov dword [esi + 4], ebx
xor ebx, ebx
mov ecx, dword [esi + 0x1c]
mov byte [esi + 0xc], al
add dl, byte [esi + 0x10]
mov byte [esi + 8], dl
movzx edi, ah
mov dword [esi + 0x14], ebx
mov ah, byte [ecx + ebx*2 + 4]
mov al, byte [ecx + ebx*2 + 5]
mov byte [esi + 0x10], al
movzx ecx, dl
mov dword [esi + 0x18], ecx
mov dl, byte [esi + ecx + 0x68]
movzx ebx, byte [esi + edi + 0x68]
mov byte [esi + edi + 0x68], dl
movzx edx, dh
mov al, byte [esi + edx + 0x68]
mov byte [esi + ecx + 0x68], al
mov ecx, dword [esi + 4]
mov al, cl
add al, 0xfe
movzx ecx, al
mov al, byte [esi + ecx + 0x68]
mov byte [esi + edx + 0x68], al
mov al, byte [esi + 0xc]
mov byte [esi + ecx + 0x68], bl
movzx ecx, byte [esi + edx + 0x68]
movzx edx, byte [esi + edi + 0x68]
add edx, ecx
add al, byte [esi + ebx + 0x68]
movzx ecx, al
movzx ecx, byte [esi + ecx + 0x68]
add ecx, edx
mov dl, byte [esi + 0x10]
add dl, 0xfb
shl ah, 4
add ah, 0xd0
or ah, dl
mov edx, dword [esi + 0x18]
movzx edx, byte [esi + edx + 0x68]
mov dword [esi + 0x10], ebx
add edx, ebx
mov ebx, 0xff
and edx, ebx
mov dh, byte [esi + edx + 0x68]
mov dl, byte [esi + 8]
xor dh, ah
and ecx, ebx
movzx ecx, byte [esi + ecx + 0x68]
xor dh, byte [esi + ecx + 0x68]
mov edi, dword [esi + 0x14]
mov byte [esi + edi + 0x2ac], dh
mov ebx, dword [esi + 4]
inc bl
mov dword [esi + 4], ebx
inc edi
mov ebx, edi
cmp edi, 5
jne 0x4362cb
xor ecx, ecx
mov byte [esi + 0xc], al
mov ebx, dword [esi + 4]
mov al, bl
mov byte [esi + 0x14], bl
add dl, byte [esi + 0x10]
mov byte [esi + 8], dl
movzx edi, ah
mov ebx, ecx
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x1c]
mov ah, byte [ecx + ebx*2 + 0xe]
mov al, byte [ecx + ebx*2 + 0xf]
mov byte [esi + 4], al
movzx ecx, dl
mov dword [esi + 0x10], ecx
mov dl, byte [esi + ecx + 0x68]
movzx ebx, byte [esi + edi + 0x68]
mov byte [esi + edi + 0x68], dl
movzx edx, dh
mov al, byte [esi + edx + 0x68]
mov byte [esi + ecx + 0x68], al
mov al, byte [esi + 0x14]
add al, 0xfe
movzx ecx, al
mov al, byte [esi + ecx + 0x68]
mov byte [esi + edx + 0x68], al
mov byte [esi + ecx + 0x68], bl
movzx ecx, byte [esi + edx + 0x68]
movzx edx, byte [esi + edi + 0x68]
add edx, ecx
mov al, byte [esi + 0xc]
add al, byte [esi + ebx + 0x68]
mov byte [esi + 0xc], al
movzx ecx, al
movzx ecx, byte [esi + ecx + 0x68]
add ecx, edx
mov al, byte [esi + 4]
add al, 0xfb
shl ah, 4
add ah, 0xd0
or ah, al
mov edx, dword [esi + 0x10]
movzx edx, byte [esi + edx + 0x68]
mov dword [esi + 0x10], ebx
add edx, ebx
mov ebx, 0xff
and edx, ebx
mov dh, byte [esi + edx + 0x68]
mov dl, byte [esi + 8]
xor dh, ah
and ecx, ebx
movzx ecx, byte [esi + ecx + 0x68]
xor dh, byte [esi + ecx + 0x68]
mov edi, dword [esi + 0x18]
mov byte [esi + edi + 0x2b1], dh
inc edi
mov bl, byte [esi + 0x14]
mov al, bl
inc bl
mov dword [esi + 4], ebx
mov ecx, edi
cmp edi, 7
jne 0x436392
add dl, byte [esi + 0x10]
movzx edi, ah
mov ecx, dword [esi + 0x1c]
mov ah, byte [ecx + 0x1c]
mov bl, byte [ecx + 0x1d]
mov ecx, edi
mov dword [esi + 0x18], edi
movzx edi, byte [esi + edi + 0x68]
mov dword [esi + 0x20], edi
movzx edi, dl
mov bh, dl
mov dl, byte [esi + edi + 0x68]
mov byte [esi + ecx + 0x68], dl
movzx ecx, dh
mov dword [esi + 0x10], ecx
mov cl, byte [esi + ecx + 0x68]
mov byte [esi + edi + 0x68], cl
mov ecx, dword [esi + 4]
add cl, 0xfe
movzx ecx, cl
mov dword [esi + 8], ecx
mov dl, byte [esi + ecx + 0x68]
mov ecx, dword [esi + 0x10]
mov byte [esi + ecx + 0x68], dl
mov edx, dword [esi + 0x20]
mov ecx, dword [esi + 8]
mov byte [esi + ecx + 0x68], dl
add bl, 0xfb
shl ah, 4
add ah, 0xd0
or ah, bl
movzx ecx, byte [esi + edi + 0x68]
add ecx, edx
mov edi, edx
mov edx, 0xff
and ecx, edx
movzx edx, ah
mov dword [esi + 8], edx
xor ah, byte [esi + ecx + 0x68]
mov ecx, dword [esi + 0x10]
movzx ecx, byte [esi + ecx + 0x68]
mov edx, dword [esi + 0x18]
movzx edx, byte [esi + edx + 0x68]
add edx, ecx
mov cl, byte [esi + 0xc]
add cl, byte [esi + edi + 0x68]
mov byte [esi + 0xc], cl
movzx ecx, cl
movzx ecx, byte [esi + ecx + 0x68]
add ecx, edx
mov edx, 0xff
and ecx, edx
movzx ecx, byte [esi + ecx + 0x68]
xor ah, byte [esi + ecx + 0x68]
mov ecx, edi
add bh, cl
mov byte [esi + 0x2b8], ah
mov ecx, dword [esi + 0x1c]
mov dh, byte [ecx + 0x1e]
mov bl, byte [ecx + 0x1f]
mov ecx, dword [esi + 8]
movzx edi, byte [esi + ecx + 0x68]
mov dword [esi + 0x20], edi
movzx edi, bh
mov dl, byte [esi + edi + 0x68]
mov byte [esi + ecx + 0x68], dl
movzx ecx, ah
mov dword [esi + 0x18], ecx
mov dl, byte [esi + ecx + 0x68]
mov byte [esi + edi + 0x68], dl
movzx eax, al
mov dl, byte [esi + eax + 0x68]
mov byte [esi + ecx + 0x68], dl
mov ecx, dword [esi + 0x20]
mov byte [esi + eax + 0x68], cl
add bl, 0xfb
shl dh, 4
add dh, 0xd0
or dh, bl
movzx eax, byte [esi + edi + 0x68]
add eax, ecx
mov edi, ecx
mov ecx, 0xff
and eax, ecx
movzx ecx, dh
mov dword [esi + 0x10], ecx
xor dh, byte [esi + eax + 0x68]
mov eax, dword [esi + 0x18]
movzx eax, byte [esi + eax + 0x68]
mov ecx, dword [esi + 8]
movzx ecx, byte [esi + ecx + 0x68]
add ecx, eax
mov al, byte [esi + 0xc]
add al, byte [esi + edi + 0x68]
mov byte [esi + 0xc], al
movzx eax, al
movzx eax, byte [esi + eax + 0x68]
add eax, ecx
mov ecx, 0xff
and eax, ecx
movzx eax, byte [esi + eax + 0x68]
xor dh, byte [esi + eax + 0x68]
mov eax, edi
add bh, al
mov byte [esi + 0x2b9], dh
mov ecx, dword [esi + 0x1c]
mov al, byte [ecx + 0x20]
mov cl, byte [ecx + 0x21]
mov byte [esi + 8], cl
movzx ebx, bh
mov ah, byte [esi + ebx + 0x68]
mov edi, dword [esi + 0x10]
movzx ecx, byte [esi + edi + 0x68]
mov byte [esi + edi + 0x68], ah
movzx edi, dh
mov ah, byte [esi + edi + 0x68]
mov byte [esi + ebx + 0x68], ah
movzx edx, byte [esi + 4]
mov ah, byte [esi + edx + 0x68]
mov byte [esi + edi + 0x68], ah
mov byte [esi + edx + 0x68], cl
mov ah, byte [esi + 0xc]
add ah, byte [esi + ecx + 0x68]
movzx edx, byte [esi + ebx + 0x68]
add edx, ecx
mov cl, byte [esi + 8]
add cl, 0xfb
shl al, 4
add al, 0xd0
or al, cl
mov ebx, 0xff
and edx, ebx
xor al, byte [esi + edx + 0x68]
movzx ecx, byte [esi + edi + 0x68]
mov edx, dword [esi + 0x10]
movzx edx, byte [esi + edx + 0x68]
add edx, ecx
movzx ecx, ah
movzx ecx, byte [esi + ecx + 0x68]
add ecx, edx
and ecx, ebx
movzx ecx, byte [esi + ecx + 0x68]
xor al, byte [esi + ecx + 0x68]
mov byte [esi + 0x2ba], al
mov byte [esi + 0x2bb], 0
mov dword [esi + 0x368], 0xffffffff
lea edi, [esi + 0x68]
mov ebx, dword [esi + 0x28]
lea eax, [esi + 0x2ab]
mov ecx, edi
push eax
call fcn.00401278
mov dword [esi + 0x368], 2
mov ecx, ebx
push 0
push edi
call fcn.004454fe
mov edi, eax
push dword [esi + 0x80]
call fcn.005fd8d5
add esp, 4
mov ecx, dword [esi + 0x7c]
cmp ecx, 8
jb 0x4366ce
mov eax, dword [esi + 0x68]
lea edx, [ecx + ecx]
add edx, 2
cmp edx, 0x1000
jb 0x4366c4
mov edx, eax
add edx, 0xfffffffc
mov eax, dword [eax - 4]
sub edx, eax
cmp edx, 0x20
jae 0x43774e
add ecx, ecx
add ecx, 0x25
mov edx, ecx
push edx
push eax
call fcn.005db412
add esp, 8
mov dword [esi + 0x368], 0xffffffff
lea eax, [esi + 0x28c]
push eax
push 0xf01ff
push dword [esi + 0x44]
call edi
mov dword [esi + 4], eax
xor eax, eax
lea ecx, [esi + 0x298]
mov dword [ecx], eax
mov dword [ecx + 4], eax
mov dword [esi + 0x10], 0
mov dword [ecx + 8], eax
mov dword [esi + 0x368], 3
lea eax, [esi + 0x2a4]
lea edx, [esi + 0x330]
push eax
push edx
push ecx
call fcn.0043541c
cmp dword [esi + 4], 0
je 0x43770b
xorpd xmm4, xmm4
movsd xmm5, qword [0x614500]
movsd xmm6, qword [0x614508]
movsd xmm7, qword [0x612228]
movsd xmm2, qword [0x614510]
xorpd xmm0, xmm0
movapd xmm1, xmm4
mulsd xmm1, qword [0x6144f0]
mulsd xmm1, xmm4
movapd xmm3, xmm4
mulsd xmm3, xmm4
subsd xmm1, xmm3
movapd xmm3, xmm4
sub ah, bl
mulsd xmm3, qword [0x6144f8]
mulsd xmm3, xmm4
addsd xmm3, qword [0x612748]
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 0x436753
xorpd xmm1, xmm1
ucomisd xmm1, xmm0
jbe 0x436801
out dx, eax
stosb byte es:[edi], al
out dx, eax
movsd dword es:[edi], dword [esi]
in al, dx
cmpsb byte [esi], byte es:[edi]
in eax, dx
test al, 0xeb
movsd dword es:[edi], dword [esi]
out dx, eax
stosd dword es:[edi], eax
jmp 0x436771
lea eax, [0x4367c4]
mov dword [esi + 0x24], eax
movdqa xmm1, xmmword [0x612110]
xor eax, eax
movdqa xmm2, xmmword [0x612120]
movdqu xmmword [esi + eax + 0x68], xmm1
add eax, 0x10
paddb xmm1, xmm2
cmp eax, 0x100
jne 0x43681c
movsd xmm1, qword [0x612130]
movapd xmm2, xmm0
subsd xmm2, xmm1
cvttsd2si eax, xmm2
lea ecx, [0x4367e6]
mov dword [esi + 0x1c], ecx
xor eax, 0x80000000
cvttsd2si ecx, xmm0
ucomisd xmm0, xmm1
cmovae ecx, eax
mov eax, ecx
shr eax, 0x18
mov dword [esi + 0x18], eax
mov dword [esi + 0x14], ecx
shr ecx, 0x10
mov dword [esi + 0x20], ecx
mov edi, 0xff
xor ebx, ebx
xor ecx, ecx
xor edx, edx
inc edx
cmp edi, 2
jb 0x436889
xor edx, edx
inc edx
add edx, edx
inc edx
cmp edx, edi
jb 0x436882
mov dword [esi + 0x10], edx
mov dword [esi + 0xc], edi
mov edx, 0xc
cmp ebx, 3
mov dword [esi + 4], edx
ja case.default.0x43689c
jmp dword [ebx*4 + 0x61466c]
movzx eax, cl
add eax, esi
add eax, 0x68
mov ecx, dword [esi + 0x14]
jmp 0x4368c8
movzx eax, cl
add eax, esi
add eax, 0x68
mov ecx, dword [esi + 0x20]
jmp 0x4368c8
movzx eax, cl
add eax, esi
add eax, 0x68
mov ecx, dword [esi + 0x18]
jmp 0x4368e8
movzx eax, cl
add eax, esi
add eax, 0x68
mov ecx, dword [esi + 0x14]
mov cl, ch
jmp 0x4368e8
movzx eax, cl
mov cl, byte [esi + eax + 0x68]
mov eax, dword [esi + 0x1c]
add eax, ebx
add eax, 0xfffffffc
add cl, byte [eax]
inc ebx
movzx eax, cl
add cl, 0x1a
cmp ebx, 0x19
movzx ecx, cl
cmovbe ecx, eax
mov eax, 0
cmova ebx, eax
movzx edx, cl
mov eax, dword [esi + 0x10]
mov edi, edx
mov dword [esi + 8], edx
and eax, edx
mov edx, dword [esi + 4]
dec edx
je 0x436920
cmp eax, dword [esi + 0xc]
ja 0x436894
jmp 0x436927
xor edx, edx
div dword [esi + 0xc]
mov eax, edx
mov edi, dword [esi + 0xc]
cmp edi, eax
je 0x436946
mov dl, byte [esi + edi + 0x68]
xor dl, byte [esi + eax + 0x68]
mov byte [esi + edi + 0x68], dl
xor dl, byte [esi + eax + 0x68]
mov byte [esi + eax + 0x68], dl
xor byte [esi + edi + 0x68], dl
dec edi
jne 0x436877
mov al, byte [esi + 0x69]
mov byte [esi + 4], al
mov cl, byte [esi + 0x6d]
mov byte [esi + 0xc], cl
movzx ecx, al
mov edx, dword [esi + 8]
movzx edx, byte [esi + edx + 0x68]
mov dword [esi + 0x14], edx
mov ebx, edx
mov edi, dword [esi + 0x24]
mov ah, byte [edi]
mov dword [esi + 0x18], ecx
mov cl, byte [esi + ecx + 0x68]
add cl, byte [esi + 0x6b]
mov byte [esi + 0x10], cl
mov al, byte [edi + 1]
movzx edi, cl
mov cl, byte [esi + edi + 0x68]
mov byte [esi + 8], cl
movzx edx, byte [esi + 0x6f]
mov dword [esi + 0x1c], edx
mov ecx, ebx
movzx ebx, byte [esi + ebx + 0x68]
mov dword [esi + 0x20], ebx
mov bl, byte [esi + 8]
mov byte [esi + ecx + 0x68], bl
mov cl, byte [esi + edx + 0x68]
mov byte [esi + edi + 0x68], cl
mov cl, byte [esi + 4]
inc cl
movzx ecx, cl
mov dword [esi + 8], ecx
mov cl, byte [esi + ecx + 0x68]
mov byte [esi + edx + 0x68], cl
mov ebx, dword [esi + 0x20]
mov ecx, dword [esi + 8]
mov byte [esi + ecx + 0x68], bl
add al, 0x62
shl ah, 4
add ah, 0xd0
or ah, al
movzx ecx, byte [esi + edi + 0x68]
add ecx, ebx
mov edx, 0xff
and ecx, edx
movzx edx, ah
mov dword [esi + 8], edx
xor ah, byte [esi + ecx + 0x68]
mov al, byte [esi + 0xc]
add al, byte [esi + ebx + 0x68]
mov byte [esi + 0xc], al
mov ecx, dword [esi + 0x1c]
movzx ecx, byte [esi + ecx + 0x68]
mov edi, dword [esi + 0x24]
mov edx, dword [esi + 0x14]
movzx edx, byte [esi + edx + 0x68]
add edx, ecx
movzx ecx, al
movzx ecx, byte [esi + ecx + 0x68]
add ecx, edx
mov edx, 0xff
and ecx, edx
movzx ecx, byte [esi + ecx + 0x68]
xor ah, byte [esi + ecx + 0x68]
mov al, byte [esi + 0x10]
add al, bl
mov dl, byte [edi + 2]
mov dh, byte [edi + 3]
mov byte [esi + 0x10], al
movzx ecx, al
mov dword [esi + 0x14], ecx
mov al, byte [esi + ecx + 0x68]
mov ecx, dword [esi + 8]
movzx ebx, byte [esi + ecx + 0x68]
mov byte [esi + ecx + 0x68], al
movzx edi, ah
mov ah, byte [esi + edi + 0x68]
mov ecx, dword [esi + 0x14]
mov byte [esi + ecx + 0x68], ah
mov al, byte [esi + 4]
add al, 2
movzx ecx, al
mov ah, byte [esi + ecx + 0x68]
mov byte [esi + edi + 0x68], ah
mov byte [esi + ecx + 0x68], bl
movzx ecx, byte [esi + edi + 0x68]
mov eax, dword [esi + 8]
movzx eax, byte [esi + eax + 0x68]
add eax, ecx
mov dword [esi + 4], eax
mov al, byte [esi + 0xc]
add al, byte [esi + ebx + 0x68]
mov byte [esi + 0xc], al
movzx ecx, al
movzx edi, byte [esi + ecx + 0x68]
add edi, dword [esi + 4]
add dh, 0x62
shl dl, 4
add dl, 0xd0
or dl, dh
mov eax, dword [esi + 0x14]
movzx ecx, byte [esi + eax + 0x68]
add ecx, ebx
mov eax, 0xff
and ecx, eax
mov ah, byte [esi + ecx + 0x68]
xor ah, dl
mov ecx, 0xff
and edi, ecx
movzx ecx, byte [esi + edi + 0x68]
xor ah, byte [esi + ecx + 0x68]
movsx ecx, ah
mov word [esi + 0x2bc], cx
xor ecx, ecx
mov al, byte [esi + 0x10]
add al, bl
movzx edi, dl
mov ebx, ecx
mov ecx, dword [esi + 0x24]
mov dl, byte [ecx + ebx*2 + 4]
mov cl, byte [ecx + ebx*2 + 5]
mov byte [esi + 0x14], cl
mov byte [esi + 0x10], al
movzx ecx, al
mov dword [esi + 8], ecx
mov al, byte [esi + ecx + 0x68]
mov dword [esi + 0x1c], edi
movzx ecx, byte [esi + edi + 0x68]
mov dword [esi + 4], ecx
mov byte [esi + edi + 0x68], al
movzx edi, ah
mov cl, byte [esi + edi + 0x68]
mov eax, dword [esi + 8]
mov byte [esi + eax + 0x68], cl
mov ecx, dword [esi + 0x18]
add ecx, ebx
add ecx, 3
mov eax, 0xff
and ecx, eax
mov dh, byte [esi + ecx + 0x68]
mov byte [esi + edi + 0x68], dh
mov eax, dword [esi + 4]
mov byte [esi + ecx + 0x68], al
movzx eax, byte [esi + edi + 0x68]
mov ecx, dword [esi + 0x1c]
movzx ecx, byte [esi + ecx + 0x68]
add ecx, eax
mov al, byte [esi + 0xc]
mov edi, dword [esi + 4]
add al, byte [esi + edi + 0x68]
mov byte [esi + 0xc], al
movzx eax, al
movzx edi, byte [esi + eax + 0x68]
add edi, ecx
mov al, byte [esi + 0x14]
add al, 0x62
shl dl, 4
add dl, 0xd0
or dl, al
mov eax, dword [esi + 8]
movzx eax, byte [esi + eax + 0x68]
add eax, dword [esi + 4]
mov ecx, 0xff
and eax, ecx
mov ah, byte [esi + eax + 0x68]
xor ah, dl
and edi, ecx
movzx ecx, byte [esi + edi + 0x68]
xor ah, byte [esi + ecx + 0x68]
movsx ecx, ah
mov word [esi + ebx*2 + 0x2be], cx
inc ebx
mov ecx, ebx
cmp ebx, 4
mov ebx, dword [esi + 4]
jne 0x436acb
mov al, byte [esi + 0x10]
add al, bl
mov byte [esi + 0x10], al
mov edi, dword [esi + 0x24]
mov bl, byte [edi + 0xc]
mov dh, byte [edi + 0xd]
mov byte [esi + 4], dh
movzx edx, dl
mov dword [esi + 0x28], edx
movzx edi, al
mov dword [esi + 8], edi
mov bh, byte [esi + edi + 0x68]
movzx edi, byte [esi + edx + 0x68]
mov dword [esi + 0x14], edi
mov byte [esi + edx + 0x68], bh
movzx eax, ah
mov dword [esi + 0x1c], eax
mov ah, byte [esi + eax + 0x68]
mov edi, dword [esi + 8]
mov byte [esi + edi + 0x68], ah
mov dword [esi + 0x20], ecx
mov eax, dword [esi + 0x18]
lea edx, [eax + ecx]
add edx, 3
mov ecx, 0xff
and edx, ecx
mov ah, byte [esi + edx + 0x68]
mov ecx, dword [esi + 0x1c]
mov byte [esi + ecx + 0x68], ah
mov eax, dword [esi + 0x14]
mov byte [esi + edx + 0x68], al
shl bl, 4
add bl, 0xd0
mov cl, byte [esi + 4]
add cl, 0x62
or cl, bl
movzx edx, byte [esi + edi + 0x68]
mov ebx, eax
add edx, eax
mov edi, 0xff
and edx, edi
movzx edi, cl
mov dword [esi + 8], edi
xor cl, byte [esi + edx + 0x68]
mov ah, cl
mov cl, byte [esi + 0xc]
add cl, byte [esi + ebx + 0x68]
mov byte [esi + 0xc], cl
mov edx, dword [esi + 0x1c]
movzx edx, byte [esi + edx + 0x68]
mov edi, dword [esi + 0x28]
movzx ebx, byte [esi + edi + 0x68]
add ebx, edx
movzx edx, cl
movzx edx, byte [esi + edx + 0x68]
add edx, ebx
mov ecx, 0xff
and edx, ecx
movzx edx, byte [esi + edx + 0x68]
xor ah, byte [esi + edx + 0x68]
mov byte [esi + 4], ah
movsx edx, ah
mov word [esi + 0x2c6], dx
mov ecx, dword [esi + 0x18]
mov edx, dword [esi + 0x20]
lea ebx, [ecx + edx]
lea eax, [ecx + edx]
add eax, 4
mov dword [esi + 0x20], eax
mov al, byte [esi + 0x10]
add al, byte [esi + 0x14]
mov ecx, dword [esi + 0x24]
mov ah, byte [ecx + 0xe]
mov cl, byte [ecx + 0xf]
mov byte [esi + 0x18], cl
mov byte [esi + 0x10], al
movzx ecx, al
mov dword [esi + 0x1c], ecx
mov al, byte [esi + ecx + 0x68]
mov ecx, dword [esi + 8]
movzx edx, byte [esi + ecx + 0x68]
mov dword [esi + 0x14], edx
mov byte [esi + ecx + 0x68], al
movzx edx, byte [esi + 4]
mov cl, byte [esi + edx + 0x68]
mov edi, dword [esi + 0x1c]
mov byte [esi + edi + 0x68], cl
mov ecx, 0xff
mov edi, dword [esi + 0x20]
and edi, ecx
mov cl, byte [esi + edi + 0x68]
mov byte [esi + edx + 0x68], cl
mov ecx, dword [esi + 0x14]
mov byte [esi + edi + 0x68], cl
movzx edi, byte [esi + edx + 0x68]
mov edx, dword [esi + 8]
movzx edx, byte [esi + edx + 0x68]
add edx, edi
mov dword [esi + 4], edx
mov al, byte [esi + 0xc]
add al, byte [esi + ecx + 0x68]
mov edx, ecx
mov byte [esi + 0xc], al
movzx ecx, al
movzx edi, byte [esi + ecx + 0x68]
add edi, dword [esi + 4]
mov al, byte [esi + 0x18]
add al, 0x62
shl ah, 4
add ah, 0xd0
or ah, al
mov ecx, dword [esi + 0x1c]
movzx ecx, byte [esi + ecx + 0x68]
add ecx, edx
mov edx, 0xff
and ecx, edx
mov dh, byte [esi + ecx + 0x68]
xor dh, ah
mov ecx, 0xff
and edi, ecx
movzx edi, byte [esi + edi + 0x68]
xor dh, byte [esi + edi + 0x68]
movsx edi, dh
mov word [esi + 0x2c8], di
add bl, 7
mov dword [esi + 4], 0
mov al, bl
mov byte [esi + 8], bl
mov al, byte [esi + 0x10]
add al, byte [esi + 0x14]
movzx ebx, ah
mov edi, dword [esi + 0x24]
mov ecx, dword [esi + 4]
mov ah, byte [edi + ecx*2 + 0x10]
mov dword [esi + 4], ecx
mov cl, byte [edi + ecx*2 + 0x11]
mov byte [esi + 0x14], cl
mov byte [esi + 0x10], al
movzx edi, al
mov dword [esi + 0x1c], edi
mov al, byte [esi + edi + 0x68]
mov ecx, ebx
mov dword [esi + 0x18], ebx
movzx ebx, byte [esi + ebx + 0x68]
mov byte [esi + ecx + 0x68], al
movzx ecx, dh
mov al, byte [esi + ecx + 0x68]
mov byte [esi + edi + 0x68], al
mov al, byte [esi + 8]
add al, 0xfe
movzx edi, al
mov al, byte [esi + edi + 0x68]
mov byte [esi + ecx + 0x68], al
mov byte [esi + edi + 0x68], bl
mov edx, ebx
movzx ecx, byte [esi + ecx + 0x68]
mov edi, dword [esi + 0x18]
movzx edi, byte [esi + edi + 0x68]
add edi, ecx
mov al, byte [esi + 0xc]
add al, byte [esi + ebx + 0x68]
mov byte [esi + 0xc], al
movzx ecx, al
movzx ebx, byte [esi + ecx + 0x68]
add ebx, edi
mov al, byte [esi + 0x14]
add al, 0x62
shl ah, 4
add ah, 0xd0
or ah, al
mov ecx, dword [esi + 0x1c]
movzx ecx, byte [esi + ecx + 0x68]
mov dword [esi + 0x14], edx
add ecx, edx
mov edi, 0xff
and ecx, edi
mov dh, byte [esi + ecx + 0x68]
mov cl, byte [esi + 8]
xor dh, ah
and ebx, edi
movzx edi, byte [esi + ebx + 0x68]
xor dh, byte [esi + edi + 0x68]
movsx edi, dh
mov ebx, dword [esi + 4]
mov word [esi + ebx*2 + 0x2ca], di
inc ebx
mov edi, ebx
mov ebx, ecx
inc bl
mov dword [esi + 4], edi
cmp edi, 6
jne 0x436d47
mov dl, byte [esi + 0x10]
add dl, byte [esi + 0x14]
mov byte [esi + 0x10], dl
movzx eax, ah
mov dword [esi + 0x1c], eax
mov edi, dword [esi + 0x24]
mov ah, byte [edi + 0x1c]
mov al, byte [edi + 0x1d]
mov edi, dword [esi + 0x1c]
movzx edi, byte [esi + edi + 0x68]
mov dword [esi + 4], edi
movzx edi, dl
mov dword [esi + 0x14], edi
mov dl, byte [esi + edi + 0x68]
mov edi, dword [esi + 0x1c]
mov byte [esi + edi + 0x68], dl
movzx edx, dh
mov dword [esi + 0x18], edx
mov ch, byte [esi + edx + 0x68]
mov edi, dword [esi + 0x14]
mov byte [esi + edi + 0x68], ch
mov ch, bl
add ch, 0xfe
movzx edi, ch
mov ch, byte [esi + edi + 0x68]
mov byte [esi + edx + 0x68], ch
mov edx, dword [esi + 4]
mov byte [esi + edi + 0x68], dl
add al, 0x62
shl ah, 4
add ah, 0xd0
or ah, al
mov edx, dword [esi + 0x14]
movzx edx, byte [esi + edx + 0x68]
add edx, dword [esi + 4]
mov edi, 0xff
and edx, edi
movzx edi, ah
mov dword [esi + 0x14], edi
xor ah, byte [esi + edx + 0x68]
mov al, byte [esi + 0xc]
mov edx, dword [esi + 4]
add al, byte [esi + edx + 0x68]
mov byte [esi + 0xc], al
mov edx, dword [esi + 0x18]
movzx edx, byte [esi + edx + 0x68]
mov edi, dword [esi + 0x1c]
movzx edi, byte [esi + edi + 0x68]
add edi, edx
movzx edx, al
movzx edx, byte [esi + edx + 0x68]
add edx, edi
mov edi, 0xff
and edx, edi
movzx edx, byte [esi + edx + 0x68]
xor ah, byte [esi + edx + 0x68]
movsx edx, ah
mov word [esi + 0x2d6], dx
mov dl, byte [esi + 0x10]
add dl, byte [esi + 4]
mov byte [esi + 0x10], dl
mov edi, dword [esi + 0x24]
mov ch, byte [edi + 0x1e]
mov al, byte [edi + 0x1f]
mov edi, dword [esi + 0x14]
movzx edi, byte [esi + edi + 0x68]
mov dword [esi + 0x18], edi
movzx edx, dl
mov dword [esi + 4], edx
mov edx, dword [esi + 4]
mov dl, byte [esi + edx + 0x68]
mov edi, dword [esi + 0x14]
mov byte [esi + edi + 0x68], dl
movzx edx, ah
mov dword [esi + 0x1c], edx
mov ah, byte [esi + edx + 0x68]
mov edi, dword [esi + 4]
mov byte [esi + edi + 0x68], ah
movzx edi, cl
mov cl, byte [esi + edi + 0x68]
mov byte [esi + edx + 0x68], cl
mov edx, dword [esi + 0x18]
mov byte [esi + edi + 0x68], dl
add al, 0x62
shl ch, 4
add ch, 0xd0
or ch, al
mov eax, dword [esi + 4]
movzx eax, byte [esi + eax + 0x68]
add eax, edx
mov edi, edx
mov edx, 0xff
and eax, edx
movzx edx, ch
mov dword [esi + 4], edx
xor ch, byte [esi + eax + 0x68]
mov eax, dword [esi + 0x1c]
movzx eax, byte [esi + eax + 0x68]
mov edx, dword [esi + 0x14]
movzx edx, byte [esi + edx + 0x68]
add edx, eax
mov al, byte [esi + 0xc]
add al, byte [esi + edi + 0x68]
mov byte [esi + 0xc], al
movzx eax, al
movzx eax, byte [esi + eax + 0x68]
add eax, edx
mov edx, 0xff
and eax, edx
movzx eax, byte [esi + eax + 0x68]
xor ch, byte [esi + eax + 0x68]
movsx eax, ch
mov word [esi + 0x2d8], ax
mov dl, byte [esi + 0x10]
mov eax, edi
add dl, al
mov eax, dword [esi + 0x24]
mov cl, byte [eax + 0x20]
mov al, byte [eax + 0x21]
mov byte [esi + 0x10], al
movzx edx, dl
mov al, byte [esi + edx + 0x68]
mov byte [esi + 8], al
mov edi, dword [esi + 4]
movzx eax, byte [esi + edi + 0x68]
mov dword [esi + 0x14], eax
mov al, byte [esi + 8]
mov byte [esi + edi + 0x68], al
movzx edi, ch
mov ch, byte [esi + edi + 0x68]
mov byte [esi + edx + 0x68], ch
movzx ebx, bl
mov ch, byte [esi + ebx + 0x68]
mov byte [esi + edi + 0x68], ch
mov eax, dword [esi + 0x14]
mov byte [esi + ebx + 0x68], al
mov ch, byte [esi + 0xc]
add ch, byte [esi + eax + 0x68]
movzx edx, byte [esi + edx + 0x68]
add edx, eax
mov al, byte [esi + 0x10]
add al, 0x62
shl cl, 4
add cl, 0xd0
or cl, al
mov ebx, 0xff
and edx, ebx
xor cl, byte [esi + edx + 0x68]
movzx eax, byte [esi + edi + 0x68]
mov edx, dword [esi + 4]
movzx edx, byte [esi + edx + 0x68]
add edx, eax
movzx eax, ch
movzx eax, byte [esi + eax + 0x68]
add eax, edx
and eax, ebx
movzx eax, byte [esi + eax + 0x68]
xor cl, byte [esi + eax + 0x68]
movsx eax, cl
mov word [esi + 0x2da], ax
mov word [esi + 0x2dc], 0
mov dword [esi + 0x368], 3
lea eax, [esi + 0x2bc]
push 1
push eax
push dword [esi + 0x28c]
call fcn.0042f52c
mov dword [esi + 0x290], eax
lea ecx, [esi + 0x64]
xor eax, eax
push ecx
push eax
mov dword [esi + 0x10], 0
push eax
push dword [esi + 0x44]
mov eax, dword [esi + 0x60]
call dword [eax + 0x10]
test eax, eax
je 0x4376ca
mov eax, dword [esi + 0x64]
mov dword [esi + 0x270], eax
and eax, 0xfffffffc
mov dword [esi + 4], eax
push eax
call fcn.005db443
add esp, 4
mov dword [esi + 0x28], eax
lea eax, [esi + 0x64]
push eax
push dword [esi + 4]
push dword [esi + 0x28]
push dword [esi + 0x44]
mov eax, dword [esi + 0x60]
call dword [eax + 0x10]
test eax, eax
je 0x4376b8
shr dword [esi + 0x270], 2
mov eax, dword [esi + 0x2a4]
shl eax, 2
mov dword [esi + 0x294], eax
xor edx, edx
mov dword [esi + 0x10], 0
cmp edx, dword [esi + 0x270]
jae 0x4376bf
mov eax, dword [esi + 0x60]
mov eax, dword [eax]
mov ecx, dword [esi + 0x28]
mov dword [esi + 0x24], edx
mov ecx, dword [ecx + edx*4]
mov dword [esi + 0x368], 3
push 0x104
lea edx, [esi + 0x68]
push edx
push ecx
call eax
test eax, eax
je 0x4376af
xor eax, eax
mov dword [esi + 0x48], eax
mov dword [esi + 0x58], eax
mov dword [esi + 0x5c], 7
mov word [esi + 0x48], 0
lea edi, [esi + 0x68]
push edi
call fcn.005ff144
add esp, 4
mov ebx, eax
cmp eax, 7
jbe 0x43716a
cmp ebx, 0x7fffffff
jae 0x437753
mov ecx, ebx
or ecx, 7
cmp ecx, 0x7ffffffe
mov dword [esi + 4], ebx
jbe 0x43718b
mov dword [esi + 0xc], connect
mov eax, 0xfffffffe
jmp 0x4371a7
mov dword [esi + 0x58], ebx
mov eax, ebx
add eax, ebx
push eax
push edi
lea edi, [esi + 0x48]
push edi
call fcn.005e2280
add esp, 0xc
mov word [esi + ebx*2 + 0x48], 0
mov edx, dword [esi + 0x48]
jmp 0x4371ee
cmp ecx, 0xa
mov edx, 0xa
cmova edx, ecx
lea eax, [edx + edx]
add eax, 2
cmp edx, 0x7ff
jb 0x4371b2
mov dword [esi + 0xc], ecx
push eax
call fcn.00401ee4
add esp, 4
jmp 0x4371be
mov dword [esi + 0xc], edx
push eax
call fcn.005db3dd
add esp, 4
mov ecx, eax
mov ebx, dword [esi + 4]
mov eax, dword [esi + 0xc]
mov dword [esi + 0x58], ebx
mov dword [esi + 0x5c], eax
mov eax, ebx
add eax, ebx
push eax
lea eax, [esi + 0x68]
push eax
push ecx
mov edi, ecx
call fcn.005e2280
mov edx, edi
add esp, 0xc
mov word [edi + ebx*2], 0
mov dword [esi + 0x48], edi
lea edi, [esi + 0x48]
mov ecx, dword [esi + 0x58]
mov eax, dword [esi + 0x5c]
cmp eax, 7
cmova edi, edx
test ecx, ecx
je 0x43722c
lea ebx, [edi + ecx*2]
movzx eax, word [edi]
push eax
call fcn.005ff962
add esp, 4
mov word [edi], ax
add edi, 2
cmp edi, ebx
jne 0x437201
mov eax, dword [esi + 0x5c]
mov edx, dword [esi + 0x48]
mov edi, dword [esi + 0x58]
mov dword [esi + 0x368], 4
jmp 0x43722e
xor edi, edi
cmp eax, 7
lea eax, [esi + 0x48]
cmovbe edx, eax
mov dword [esi + 8], edx
xor eax, eax
mov dword [esi + 0x2c], eax
mov dword [esi + 0x3c], eax
mov dword [esi + 0x40], 0xf
mov byte [esi + 0x2c], 0
mov dword [esi + 0x368], 4
lea ecx, [esi + 0x2c]
mov dword [esi + 4], edi
push edi
call fcn.0042704c
mov eax, dword [esi + 4]
test eax, eax
mov ecx, dword [esi + 8]
je 0x4373db
lea edx, [ecx + eax*2]
mov dword [esi + 0x20], edx
mov al, byte [ecx]
mov edi, dword [esi + 0x3c]
mov ebx, dword [esi + 0x40]
cmp edi, ebx
mov byte [esi + 4], al
jae 0x4372a7
lea eax, [edi + 1]
mov dword [esi + 0x3c], eax
lea eax, [esi + 0x2c]
cmp ebx, 0xf
jbe 0x437297
mov eax, dword [esi + 0x2c]
mov bl, byte [esi + 4]
mov byte [eax + edi], bl
mov byte [eax + edi + 1], 0
jmp 0x4373a2
cmp edi, 0x7fffffff
je 0x43773f
mov dword [esi + 8], ecx
mov dword [esi + 0x1c], edi
lea ecx, [edi + 1]
mov dword [esi + 0x18], ecx
or ecx, 0xf
mov dword [esi + 0x14], connect
mov eax, connect
mov dword [esi + 0xc], ebx
js 0x4372fb
mov edx, ebx
shr edx, 1
mov edi, edx
xor edi, 0x7fffffff
cmp edi, ebx
jb 0x4372fb
add edx, ebx
cmp ecx, edx
cmovae edx, ecx
lea eax, [edx + 1]
cmp eax, 0x1000
jb 0x4373af
mov dword [esi + 0x14], edx
mov dword [esi + 0x368], 5
push eax
call fcn.00401ee4
add esp, 4
mov edi, eax
mov ebx, dword [esi + 0xc]
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x14]
mov dword [esi + 0x3c], eax
mov dword [esi + 0x40], ecx
cmp ebx, 0x10
jb 0x43736e
mov eax, dword [esi + 0x2c]
mov ebx, dword [esi + 0x1c]
push ebx
mov dword [esi + 0x14], eax
push eax
push edi
call fcn.005e2280
add esp, 0xc
mov al, byte [esi + 4]
mov byte [edi + ebx], al
mov byte [edi + ebx + 1], 0
mov eax, dword [esi + 0xc]
lea ecx, [eax + 1]
cmp ecx, 0x1000
jb 0x43738c
mov edx, eax
mov ecx, dword [esi + 0x14]
mov eax, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, eax
cmp ecx, 0x20
jae 0x43774e
mov ecx, edx
add ecx, 0x24
jmp 0x43738f
mov ebx, dword [esi + 0x1c]
push ebx
lea eax, [esi + 0x2c]
push eax
push edi
call fcn.005e2280
add esp, 0xc
mov al, byte [esi + 4]
mov byte [edi + ebx], al
mov byte [edi + ebx + 1], 0
jmp 0x437399
mov eax, dword [esi + 0x14]
push ecx
push eax
call fcn.005db412
add esp, 8
mov dword [esi + 0x2c], edi
mov ecx, dword [esi + 8]
mov edx, dword [esi + 0x20]
add ecx, 2
cmp ecx, edx
jne 0x437277
jmp 0x4373db
test eax, eax
je 0x4373ce
mov dword [esi + 0x14], edx
mov dword [esi + 0x368], 5
push eax
call fcn.005db3dd
add esp, 4
jmp 0x43730e
xor edi, edi
xor ecx, ecx
dec ecx
mov eax, dword [esi + 0x18]
jmp 0x437319
mov edi, dword [esi + 0x40]
lea eax, [esi + 0x2c]
cmp edi, 0xf
jbe 0x4373e9
mov eax, dword [esi + 0x2c]
push 0x5c
push eax
call fcn.005e2a90
add esp, 8
test eax, eax
je 0x43763d
mov dword [esi + 4], eax
mov dword [esi + 0x368], 6
lea ecx, [esi + 0x2f8]
call fcn.0042493c
mov dword [esi + 0x368], 7
lea ecx, [esi + 0x2f8]
push dword [esi + 0x294]
lea eax, [esi + 0x330]
push eax
call fcn.00424fb2
mov edi, dword [esi + 4]
inc edi
xor eax, eax
mov dword [esi + 0x274], eax
mov dword [esi + 0x284], eax
mov dword [esi + 0x288], 0xf
mov byte [esi + 0x274], 0
push edi
call fcn.005fef10
add esp, 4
mov ebx, eax
cmp eax, 0xf
jbe 0x437499
test ebx, ebx
js 0x437758
mov ecx, ebx
or ecx, 0xf
mov dword [esi + 4], edi
mov dword [esi + 0xc], ebx
js 0x4374ba
cmp ecx, 0x16
mov edx, 0x16
cmova edx, ecx
lea eax, [edx + 1]
cmp edx, 0xfff
jb 0x4374d1
mov dword [esi + 8], ecx
jmp 0x4374c6
mov dword [esi + 0x284], ebx
push ebx
push edi
lea edi, [esi + 0x274]
push edi
call fcn.005e2280
add esp, 0xc
mov byte [esi + ebx + 0x274], 0
jmp 0x43750f
mov dword [esi + 8], connect
mov eax, connect
push eax
call fcn.00401ee4
add esp, 4
jmp 0x4374dd
mov dword [esi + 8], edx
push eax
call fcn.005db3dd
add esp, 4
mov edi, eax
mov eax, dword [esi + 4]
mov ebx, dword [esi + 0xc]
mov ecx, dword [esi + 8]
mov dword [esi + 0x284], ebx
mov dword [esi + 0x288], ecx
push ebx
push eax
push edi
call fcn.005e2280
add esp, 0xc
mov byte [edi + ebx], 0
mov dword [esi + 0x274], edi
lea edi, [esi + 0x274]
mov dword [esi + 0x368], 8
lea ecx, [esi + 0x2f8]
push edi
call fcn.00424c24
mov eax, dword [esi + 0x288]
cmp eax, 0x10
jb 0x437563
mov ecx, dword [esi + 0x274]
lea edi, [eax + 1]
cmp edi, 0x1000
jb 0x437559
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x43774e
add eax, 0x24
mov edi, eax
mov ecx, edx
push edi
push ecx
call fcn.005db412
add esp, 8
mov dword [esi + 0x368], 7
lea ecx, [esi + 0x2f8]
call fcn.004263fe
mov eax, dword [esi + 0x298]
mov dword [esi + 0x18], eax
test eax, eax
je 0x4375fc
mov eax, dword [esi + 0x2a0]
mov dword [esi + 0x20], eax
xor ecx, ecx
mov edi, dword [esi + 0x2f8]
mov dword [esi + 8], edi
mov eax, dword [esi + 0x20]
mov dword [esi + 0x1c], ecx
mov eax, dword [eax + ecx*4]
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x4375f3
mov dword [esi + 0x14], eax
mov eax, dword [eax + 0xc]
xor edx, edx
mov dword [esi + 4], ecx
mov dword [esi + 0xc], eax
mov ebx, dword [eax + edx*4]
cmp dword [ebx], edi
jne 0x4375ee
xor eax, eax
mov edi, eax
inc eax
cmp eax, 5
je 0x4375d5
mov ecx, dword [ebx + edi*4 + 4]
cmp ecx, dword [esi + edi*4 + 0x2fc]
je 0x4375c0
cmp edi, 4
jb 0x4375e5
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x14]
or eax, dword [ecx]
mov dword [esi + 0x10], eax
mov edi, dword [esi + 8]
mov ecx, dword [esi + 4]
mov eax, dword [esi + 0xc]
inc edx
cmp edx, ecx
jne 0x4375b7
mov ecx, dword [esi + 0x1c]
inc ecx
cmp ecx, dword [esi + 0x18]
jne 0x437599
mov eax, dword [esi + 0x320]
cmp eax, 0x10
jb 0x43763a
mov ecx, dword [esi + 0x30c]
lea edi, [eax + 1]
cmp edi, 0x1000
jb 0x437630
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x43774e
add eax, 0x24
mov edi, eax
mov ecx, edx
push edi
push ecx
call fcn.005db412
add esp, 8
mov edi, dword [esi + 0x40]
cmp edi, 0x10
jb 0x437672
mov eax, dword [esi + 0x2c]
lea edx, [edi + 1]
cmp edx, 0x1000
jb 0x437668
mov ecx, dword [eax - 4]
add eax, 0xfffffffc
sub eax, ecx
cmp eax, 0x20
jae 0x43774e
add edi, 0x24
mov edx, edi
mov eax, ecx
push edx
push eax
call fcn.005db412
add esp, 8
mov ecx, dword [esi + 0x5c]
cmp ecx, 8
jb 0x4376af
mov eax, dword [esi + 0x48]
lea edx, [ecx + ecx]
add edx, 2
cmp edx, 0x1000
jb 0x4376a5
mov edx, eax
add edx, 0xfffffffc
mov eax, dword [eax - 4]
sub edx, eax
cmp edx, 0x20
jae 0x43774e
add ecx, ecx
add ecx, 0x25
mov edx, ecx
push edx
push eax
call fcn.005db412
add esp, 8
mov edx, dword [esi + 0x24]
inc edx
jmp 0x4370e0
mov dword [esi + 0x10], 0
push dword [esi + 0x28]
call fcn.005db44c
add esp, 4
cmp dword [esi + 0x290], 0
je 0x4376f2
mov eax, dword [esi + 0x28c]
mov dword [esi + 0x368], 3
push 0
lea ecx, [esi + 0x2bc]
push ecx
push eax
call fcn.0042f52c
xor eax, eax
mov byte [esi + eax + 0x2bc], 0
inc eax
cmp eax, 0x22
jne 0x4376f4
push dword [esi + 0x44]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea eax, [esi + 0x298]
push eax
call fcn.0042e874
add esp, 4
push dword [esi + 0x2a0]
call fcn.005fd8d5
add esp, 4
mov eax, dword [esi + 0x360]
mov dword fs:[0], eax
mov eax, dword [esi + 0x10]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [esi + 0x368], 5
call fcn.00401eda
call fcn.005f5844
call fcn.00401eda
call fcn.00401eda
nop
push ebp
sub esp, 0x10
lea esi, [ebp - 0x36c]
mov ebp, dword [esi + 0x358]
push dword [esi + 0x80]
call fcn.005fd8d5
add esp, 4
mov ecx, dword [esi + 0x7c]
cmp ecx, 8
jb 0x4377b5
mov eax, dword [esi + 0x68]
lea edx, [ecx + ecx]
add edx, 2
cmp edx, 0x1000
jb 0x4377ab
mov edx, eax
add edx, 0xfffffffc
mov eax, dword [eax - 4]
sub edx, eax
cmp edx, 0x20
jae 0x4377ba
add ecx, ecx
add ecx, 0x25
mov edx, ecx
push edx
push eax
call fcn.005db412
add esp, 8
add esp, 0x10
pop ebp
ret
call fcn.005f5844
nop
push ebp
sub esp, 0x10
lea esi, [ebp - 0x36c]
mov ebp, dword [esi + 0x358]
push dword [esi + 0x80]
call fcn.005fd8d5
add esp, 4
mov ecx, dword [esi + 0x7c]
cmp ecx, 8
jb 0x437817
mov eax, dword [esi + 0x68]
lea edx, [ecx + ecx]
add edx, 2
cmp edx, 0x1000
jb 0x43780d
mov edx, eax
add edx, 0xfffffffc
mov eax, dword [eax - 4]
sub edx, eax
cmp edx, 0x20
jae 0x43781c
add ecx, ecx
add ecx, 0x25
mov edx, ecx
push edx
push eax
call fcn.005db412
add esp, 8
add esp, 0x10
pop ebp
ret
call fcn.005f5844
nop
push ebp
sub esp, 0x10
lea esi, [ebp - 0x36c]
mov ebp, dword [esi + 0x358]
push dword [esi + 0x28]
call fcn.005db40d
add esp, 0x14
pop ebp
ret