Function at 0x37cbd0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xf0
mov dword [esp + 8], 0x43834165
mov dword [esp + 0xc], 0x47d645d4
mov dword [esp + 0x10], 0x4bab498c
mov dword [esp + 0x14], 0x4faf4dd8
mov dword [esp + 0x18], 0x73727155
lea eax, [esp + 0x1c]
mov word [esp + 0x1c], 0
mov byte [esp + 0x1e], 0
mov ecx, 0xf3746290
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx + 0xc8b9d78]
mov esi, ecx
and esi, edx
add esi, esi
sub edx, esi
add edx, ecx
mov esi, edx
and esi, 0x2f
xor edx, 0x2f
lea edx, [edx + esi*2]
inc dl
mov byte [esp + ecx + 0xc8b9d78], dl
inc ecx
cmp ecx, 0xf37462a7
jne 0x37cc20
lea esi, [esp + 0xc6]
lea edx, [esp + 8]
mov edi, esi
mov ecx, 5
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0xda]
xor ebx, ebx
xor ecx, ecx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
lea edi, [esp + 0x58]
push edi
push 0
push 0
push 9
push esi
push 0
call dword [0x3a0370]
mov ebp, dword [esp + 0x58]
test ebp, ebp
jns 0x37cc9a
mov eax, 0xffffffff
jmp 0x37cca1
lea eax, [ebp*2]
push eax
call fcn.0035c880
add esp, 4
push edi
push ebp
mov dword [esp + 0x54], eax
push eax
push 9
push esi
push 0
call dword [0x3a0370]
mov dword [esp + 8], 0x3f9739fc
mov dword [esp + 0xc], 0x23853dab
mov dword [esp + 0x10], 0x27b021b3
mov dword [esp + 0x14], 0x2b2a2580
mov dword [esp + 0x18], 0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, ebx
add al, 0xca
xor al, byte [esp + ebx + 8]
add al, 0xe
mov byte [esp + ebx + 8], al
inc ebx
cmp ebx, 0x14
jne 0x37ccf0
lea edi, [esp + 0x9a]
lea edx, [esp + 8]
mov ecx, 4
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0xaa]
lea edx, [esp + 0x18]
xor ecx, ecx
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
mov dword [esp + 8], 0xff709cc
mov dword [esp + 0xc], 0x3e50dfb
mov dword [esp + 0x10], 0x7f001f3
mov dword [esp + 0x14], 0x1bdd05e0
mov dword [esp + 0x18], 0x1fec19f9
mov dword [esp + 0x1c], 0x13e41dfd
mov dword [esp + 0x20], 0x17161199
lea esi, [esp + 0x24]
mov word [esp + 0x24], 0
mov ecx, 0x58506342
mov edx, 0xbd
nop
nop
nop
nop
nop
movzx edi, byte [esp + ecx - 0x5850633a]
mov ebp, edx
xor ebp, ecx
and ebp, edi
xor ebp, ecx
lea ebx, [ebp + 0xb7]
neg ebp
and ebp, 2
and ebx, 0xfd
sub ebx, ebp
inc bl
mov byte [esp + ecx - 0x5850633a], bl
inc ecx
dec edx
cmp ecx, 0x58506360
jne 0x37cd80
lea edi, [esp + 0xaa]
lea ebx, [esp + 8]
mov ecx, 7
xchg esi, ebx
rep movsd dword es:[edi], dword [esi]
xchg esi, ebx
lea edi, [esp + 0xc6]
xor ecx, ecx
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
mov dword [esp + 8], 0x29852b60
mov dword [esp + 0xc], 0x2d8b2f9d
mov dword [esp + 0x10], 0x3184339d
mov dword [esp + 0x14], 0x35663794
mov dword [esp + 0x18], 0x397c3b60
lea ebx, [esp + 0x1c]
mov word [esp + 0x1c], 0x3f38
mov dword [esp + 0x1e], 0
mov byte [esp + 0x22], 0
mov edi, 0x87
mov edx, 0x38
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebp, byte [esp + edi - 0x7f]
mov eax, edi
and eax, ebp
mov esi, edx
and esi, 0x30
mov ecx, edi
and ecx, 0x8f
or ecx, esi
lea esi, [eax + eax]
not esi
add esi, eax
xor ecx, 0x30
or ecx, ebp
and ecx, esi
add cl, 0x5d
mov byte [esp + edi - 0x7f], cl
inc edi
dec edx
cmp edi, 0xa2
jne case.default.0x37ced8
lea esi, [esp + 0xda]
lea eax, [esp + 8]
mov edi, esi
mov ecx, 5
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edi, [esp + 0xee]
mov ecx, 1
xchg esi, ebx
rep movsw word es:[edi], word [esi]
xchg esi, ebx
lea eax, [esp + 0x9a]
mov dword [esp + 0x84], eax
lea eax, [esp + 0xaa]
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], esi
mov eax, dword [esp + 0x4c]
add eax, 2
mov dword [esp + 0x64], eax
xor ecx, ecx
xor eax, eax
mov dword [esp + 0x5c], 0
cmp ecx, 0xc
setne al
mov dword [esp + 0x44], 0
jmp dword [eax*4 + 0x39c950]
jmp dword [0x39c958]
push dword [esp + 0x4c]
call fcn.0035c890
add esp, 4
mov eax, dword [esp + 0x5c]
and al, 1
add esp, 0xf0
pop esi
pop edi
pop ebx
pop ebp
ret
mov edx, dword [esp + 0x44]
add edx, 4
xor eax, eax
mov ecx, edx
mov dword [esp + 0x44], edx
cmp edx, 0xc
setne al
jmp dword [eax*4 + 0x39c950]
jmp dword [0x39c960]
mov eax, dword [esp + 0x44]
mov esi, dword [esp + eax + 0x84]
mov eax, 0xfffffffe
mov dword [esp + 0x40], esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [esi + eax + 2], 0
lea eax, [eax + 2]
jne 0x37cf50
sar eax, 1
mov ecx, dword [esp + 0x58]
lea edx, [eax + ecx]
add ecx, eax
add ecx, 0xd
lea eax, [edx*2 + 0x1a]
test ecx, ecx
jns 0x37cf79
mov eax, 0xffffffff
push eax
call fcn.0035c880
add esp, 4
mov ecx, dword [esp + 0x4c]
movzx edx, word [ecx]
mov ecx, eax
test dx, dx
je 0x37cfb1
mov edi, dword [esp + 0x64]
mov ecx, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ecx], dx
add ecx, 2
movzx edx, word [edi]
add edi, 2
test dx, dx
jne 0x37cfa0
mov word [ecx], 0x5c
mov dword [esp + 8], 0xc38ec1bc
mov dword [esp + 0xc], 0xc7a5c5ab
mov dword [esp + 0x10], 0xcba6c9a9
mov dword [esp + 0x14], 0xcfbdcdec
mov dword [esp + 0x18], 0xf393f164
mov dword [esp + 0x1c], 0xf793f560
mov word [esp + 0x20], 0xf9f8
lea edi, [esp + 8]
mov byte [edi + 0x1e], 0
mov dword [edi + 0x1a], 0
mov edx, 0x4deca0af
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebp, byte [edi]
mov ebx, edx
or ebx, ebp
lea esi, [edx - 0x4deca000]
and esi, ebp
not ebx
or ebx, esi
add ebx, 0x859f236f
mov esi, ebx
and esi, 1
xor ebx, 1
lea ebx, [ebx + esi*2]
mov byte [edi], bl
inc edi
dec edx
cmp edx, 0x4deca090
jne 0x37d010
add ecx, 2
mov esi, dword [esp + 0x40]
movzx edx, word [esi]
test dx, dx
je 0x37d071
add esi, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ecx], dx
add ecx, 2
movzx edx, word [esi]
add esi, 2
test dx, dx
jne 0x37d060
mov word [ecx], 0
movzx edx, word [esp + 8]
test dx, dx
je 0x37d0a1
lea esi, [esp + 0xa]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ecx], dx
add ecx, 2
movzx edx, word [esi]
add esi, 2
test dx, dx
jne 0x37d090
mov word [ecx], 0
lea ecx, [esp + 0x54]
push 0x60
push 3
push 0x120089
push ecx
push eax
call fcn.00394520
add esp, 0x14
mov eax, dword [esp + 0x44]
mov esi, dword [esp + eax + 0x84]
mov edi, 0xfffffffe
nop
nop
nop
cmp word [esi + edi + 2], 0
lea edi, [edi + 2]
jne 0x37d0d0
mov edx, edi
sar edx, 1
mov eax, dword [esp + 0x58]
lea ecx, [edx + eax]
mov dword [esp + 0x48], edx
add edx, eax
add edx, 0xd
lea eax, [ecx*2 + 0x1a]
test edx, edx
jns 0x37d0ff
mov eax, 0xffffffff
mov dword [esp + 0x50], esi
push eax
call fcn.0035c880
add esp, 4
mov esi, eax
mov eax, dword [esp + 0x4c]
movzx ecx, word [eax]
mov eax, esi
test cx, cx
je 0x37d141
mov edx, dword [esp + 0x64]
mov eax, esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x37d130
mov dword [esp + 0x40], esi
mov word [eax], 0x5c
mov dword [esp + 8], 0xc38ec1bc
mov dword [esp + 0xc], 0xc7a5c5ab
mov dword [esp + 0x10], 0xcba6c9a9
mov dword [esp + 0x14], 0xcfbdcdec
mov dword [esp + 0x18], 0xf393f164
mov dword [esp + 0x1c], 0xf793f560
mov word [esp + 0x20], 0xf9f8
lea ecx, [esp + 8]
mov byte [ecx + 0x1e], 0
mov dword [ecx + 0x1a], 0
mov edx, 0x4deca0af
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebp, byte [ecx]
mov ebx, edx
or ebx, ebp
lea esi, [edx - 0x4deca000]
and esi, ebp
not ebx
or ebx, esi
add ebx, 0x859f236f
mov esi, ebx
and esi, 1
xor ebx, 1
lea ebx, [ebx + esi*2]
mov byte [ecx], bl
inc ecx
dec edx
cmp edx, 0x4deca090
jne 0x37d1a0
add eax, 2
mov esi, dword [esp + 0x50]
movzx ecx, word [esi]
test cx, cx
je 0x37d201
lea edx, [esi + 2]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x37d1f0
mov word [eax], 0
movzx ecx, word [esp + 8]
test cx, cx
mov ebp, dword [esp + 0x40]
je 0x37d231
lea edx, [esp + 0xa]
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x37d220
mov word [eax], 0
lea eax, [esp + 0x54]
push 0x60
push 3
push 0x120089
push eax
push ebp
call fcn.00394520
add esp, 0x14
jmp dword [0x39c96c]
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x39c970]
xor ebx, ebx
jmp dword [0x39c9f0]
push ebp
call fcn.0035c890
add esp, 4
movzx eax, bl
jmp dword [eax*4 + 0x39c9f8]
lea eax, [esp + 0x7c]
push 0
push eax
push dword [esp + 0x5c]
call fcn.00394880
add esp, 0xc
not eax
shr eax, 0x1f
mov dword [esp], 0
jmp dword [eax*4 + 0x39c978]
mov esi, dword [esp + 0x7c]
lea eax, [esi + 1]
push eax
call fcn.0035c880
add esp, 4
mov ebx, eax
push 0
push esi
mov esi, dword [esp + 0x58]
push eax
push dword [esp + 0x60]
call fcn.00394950
add esp, 0x10
not eax
shr eax, 0x1f
xor ecx, ecx
jmp dword [eax*4 + 0x39c980]
mov eax, dword [esp + 0x7c]
mov byte [ebx + eax], 0
push ebx
call fcn.00353dc0
add esp, 4
mov ebp, eax
xor eax, eax
test ebp, ebp
setne al
xor ecx, ecx
jmp dword [eax*4 + 0x39c988]
push ebp
call fcn.00354700
xor edx, edx
add esp, 4
mov dword [esp + 8], 0xa8ad5e5b
mov dword [esp + 0xc], 0x5752445a
mov dword [esp + 0x10], 0xa054a492
mov dword [esp + 0x14], 0x6f6a4c52
mov dword [esp + 0x18], 0x609d9d9d
mov word [esp + 0x1c], 0x7499
mov byte [esp + 0x1e], 0xf2
mov dword [esp + 0x1f], 0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, edx
add cl, 0x52
xor cl, byte [esp + edx + 8]
add cl, 0x66
mov byte [esp + edx + 8], cl
inc edx
cmp edx, 0x1b
jne 0x37d350
mov dword [esp + 0x68], ebp
mov dword [esp + 0x6c], ebx
lea ecx, [esp + 8]
push ecx
push eax
call fcn.00354840
add esp, 8
mov edx, eax
dec eax
mov ecx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
inc eax
cmp byte [ecx], 0
lea ecx, [ecx + 1]
jne 0x37d390
mov ecx, eax
xor ecx, edx
mov ebx, edx
not ebx
and ebx, eax
add ebx, ebx
mov dword [esp + 0x3c], ebx
mov dword [esp], ecx
sub ebx, ecx
mov eax, ebx
and eax, 0xfffffffc
mov ecx, ebx
and ecx, 3
mov ebp, ebx
or ebp, 3
imul ebp, ecx
xor ecx, 3
imul ecx, eax
add ebp, ecx
shr ebp, 2
mov dword [esp + 4], edx
movzx eax, byte [edx + ebx - 1]
cmp eax, 0x3d
je 0x37d3de
cmp eax, 0x2e
jne 0x37d3df
dec ebp
mov eax, dword [esp + 4]
movzx eax, byte [eax + ebx - 2]
cmp eax, 0x3d
mov dword [esp + 0x60], ebx
je 0x37d3f6
cmp eax, 0x2e
jne 0x37d3f7
dec ebp
mov esi, dword [esp]
mov ebx, dword [esp + 0x3c]
mov dword [esp + 0x80], ebp
lea eax, [ebp + 1]
push eax
call fcn.0035c880
add esp, 4
mov dword [esp + 0x3c], eax
cmp ebx, esi
jne case.default.0x37d47f
mov eax, dword [esp + 0x80]
add eax, 0xfffffffb
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x3c]
add eax, 5
mov dword [esp + 0x94], eax
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
push 0x14e20a34
push dword [0x3a0380]
call fcn.00393a90
add esp, 8
lea ecx, [esp + 0x74]
lea edx, [esp + 0x90]
push ecx
push 0
push 0
push 0
push 0
push 0
push edx
call eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x39c990]
mov dword [esp], 0
mov ebx, dword [esp + 0x6c]
mov ebp, dword [esp + 0x68]
mov esi, dword [esp + 0x50]
jmp dword [0x39c9b0]
jmp dword [0x39c9b8]
xor esi, esi
mov ebp, 2
jmp 0x37d4c3
lea eax, [ebp + 4]
add ebp, 2
mov esi, dword [esp]
cmp ebp, edx
mov ebp, eax
jae 0x37d41d
mov ebx, dword [esp + 4]
movzx eax, byte [ebx + ebp - 2]
push eax
call fcn.003723f0
add esp, 4
mov byte [esp], al
movzx eax, byte [ebx + ebp - 1]
push eax
call fcn.003723f0
add esp, 4
mov bh, al
movzx ecx, byte [esp]
shl cl, 2
shr al, 4
and al, 3
or al, cl
lea ecx, [esi + 1]
mov dword [esp], ecx
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x70], esi
mov byte [ecx + esi], al
mov edx, dword [esp + 0x60]
cmp ebp, edx
jae 0x37d4b0
mov eax, dword [esp + 4]
movzx eax, byte [eax + ebp]
push eax
call fcn.003723f0
mov edx, dword [esp + 0x64]
add esp, 4
cmp al, 0x40
je 0x37d4b0
mov bl, al
shl bh, 4
shr al, 2
and al, 0xf
or al, bh
mov esi, dword [esp + 0x70]
lea ecx, [esi + 2]
mov dword [esp], ecx
mov ecx, dword [esp + 0x3c]
mov byte [ecx + esi + 1], al
lea eax, [ebp + 1]
cmp eax, edx
jae 0x37d4b0
mov eax, dword [esp + 4]
movzx eax, byte [eax + ebp + 1]
push eax
call fcn.003723f0
mov edx, dword [esp + 0x64]
add esp, 4
cmp al, 0x40
je 0x37d4b0
shl bl, 6
add al, bl
mov ecx, dword [esp + 0x3c]
mov esi, dword [esp + 0x70]
mov byte [ecx + esi + 2], al
add esi, 3
mov dword [esp], esi
jmp 0x37d4b0
lea eax, [edi + 0x10]
cmp dword [esp + 0x48], 0xfffffff8
mov esi, dword [esp + 0x50]
jge 0x37d59e
mov eax, 0xffffffff
push eax
call fcn.0035c880
add esp, 4
mov dword [esp + 4], eax
mov dword [esp + 8], 0xe90eebd5
mov dword [esp + 0xc], 0xeddcef18
mov dword [esp + 0x10], 0xf10af318
mov dword [esp + 0x14], 0xf5f6f704
lea eax, [esp + 0x18]
mov byte [eax + 2], 0
mov word [eax], 0
mov eax, 0xd95017a7
mov ecx, 0x7e858
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax + 0x26afe861]
mov ebx, edx
not ebx
or ebx, 0xb6b803ee
add ebx, edx
inc ebx
and edx, 0x11
xor edx, 0x4947fc11
or ebx, edx
mov ebp, ecx
and ebp, 0x7e811
mov edx, eax
and edx, 0x901003ee
or edx, ebp
xor edx, ebx
mov ebx, edx
and ebx, 0x3c
mov ebp, edx
xor ebp, 0xbc
lea ebx, [ebx*2]
add ebx, ebp
and edx, 1
or ebx, 1
xor ebx, edx
lea edx, [ebx + edx*2]
mov byte [esp + eax + 0x26afe861], dl
inc eax
dec ecx
cmp eax, 0xd95017ba
jne 0x37d5f0
movzx ecx, word [esi]
mov ebx, dword [esp + 4]
mov eax, ebx
test cx, cx
je 0x37d681
lea edx, [esi + 2]
mov eax, ebx
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x37d670
mov word [eax], 0
movzx ecx, word [esp + 8]
test cx, cx
mov ebp, dword [esp + 0x68]
je 0x37d6b1
lea edx, [esp + 0xa]
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x37d6a0
mov word [eax], 0
mov ecx, dword [esp + 0x104]
push dword [esp + 0x74]
push dword [esp + 0x7c]
mov ebx, dword [esp + 0xc]
push ebx
call fcn.0035d220
mov dword [esp], eax
jmp dword [0x39c998]
jmp dword [0x39c9a0]
push ebx
call fcn.0035c890
add esp, 4
nop
nop
nop
nop
nop
nop
nop
nop
nop
push ebx
call fcn.0035c890
add esp, 4
jmp dword [0x39c9a8]
push 0xbe5098bb
push dword [0x3a0368]
call fcn.00393a90
add esp, 8
push dword [esp + 0x78]
call eax
mov ebx, dword [esp + 0x6c]
jmp dword [0x39c9b0]
push dword [esp + 0x3c]
call fcn.0035c890
add esp, 4
jmp dword [0x39c9b8]
push ebp
call fcn.00354970
add esp, 4
nop
nop
nop
push ebp
call fcn.00354970
add esp, 4
jmp dword [0x39c9c0]
mov eax, dword [case.0x37ced8.13]
mov ecx, dword [esp]
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov eax, dword [case.0x37ced8.11]
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov dword [esp], ecx
jmp dword [0x39c9e8]
push ebx
call fcn.0035c890
add esp, 4
mov eax, dword [esp + 0x54]
mov dword [esp + 4], eax
mov dword [esp + 8], 0xf4f5f6f7
mov ebp, 0x92bb3fd4
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esp + ebp + 0x6d44c034]
mov edx, ebx
and edx, ebp
mov eax, edx
or al, 0xfd
inc al
mov ecx, edx
and cl, 0xd5
mul cl
mov ecx, eax
add cl, bl
mov eax, edx
shr al, 1
and al, 1
or dl, 2
mul dl
add al, al
sub cl, al
movzx eax, cl
add eax, ebp
add al, 0xdc
mov byte [esp + ebp + 0x6d44c034], al
inc ebp
cmp ebp, 0x92bb3fd8
jne 0x37d7a0
mov eax, dword [0x3a0374]
test eax, eax
mov ebp, dword [esp + 0x40]
je 0x37d820
mov ecx, dword [esp + 8]
xor edx, edx
mov ebx, dword [0x3a0378]
nop
nop
nop
nop
cmp dword [ebx + edx*8], 0xb62b8d10
je 0x37d810
inc edx
cmp eax, edx
jne 0x37d800
jmp 0x37d820
mov eax, dword [ebx + edx*8 + 4]
cmp eax, ecx
jne 0x37db7b
nop
nop
nop
nop
mov ebx, dword [esp]
jmp dword [0x39c9f0]
movzx eax, bl
jmp dword [eax*4 + 0x39c9f8]
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x48]
lea ecx, [edx + eax]
add edx, eax
add edx, 0x17
lea eax, [ecx*2 + 0x2e]
test edx, edx
jns 0x37d853
mov eax, 0xffffffff
push eax
call fcn.0035c880
add esp, 4
mov ebx, eax
mov eax, dword [esp + 0x4c]
movzx ecx, word [eax]
mov eax, ebx
test cx, cx
je 0x37d891
mov edx, dword [esp + 0x64]
mov eax, ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x37d880
mov word [eax], 0x5c
mov dword [esp + 8], 0xf306f114
mov dword [esp + 0xc], 0xef0ded7b
mov dword [esp + 0x10], 0xeb7ee909
mov dword [esp + 0x14], 0xe715e5c4
mov dword [esp + 0x18], 0xe375e16c
mov dword [esp + 0x1c], 0x9f7f9d0e
mov dword [esp + 0x20], 0x9b079907
mov dword [esp + 0x24], 0x97029570
mov dword [esp + 0x28], 0x931c910d
mov dword [esp + 0x2c], 0x8f1a8d11
mov dword [esp + 0x30], 0x8b688914
mov word [esp + 0x34], 0x8584
lea ecx, [esp + 8]
mov byte [ecx + 0x32], 0
mov dword [ecx + 0x2e], 0
mov ecx, 0x95a902ac
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx + 0x6a56fd5c]
mov ebp, ecx
and ebp, edx
add ebp, ebp
sub edx, ebp
lea ebp, [ecx + edx]
add edx, ecx
add edx, 0xa3
not ebp
and ebp, 1
xor edx, 1
lea edx, [edx + ebp*2]
mov byte [esp + ecx + 0x6a56fd5c], dl
inc ecx
cmp ecx, 0x95a902df
jne 0x37d910
add eax, 2
movzx ecx, word [esi]
test cx, cx
je 0x37d971
lea edx, [esi + 2]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x37d960
mov word [eax], 0
movzx ecx, word [esp + 8]
test cx, cx
je 0x37d9a1
lea edx, [esp + 0xa]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x37d990
mov dword [esp + 0x40], ebx
mov word [eax], 0
add edi, 0x12
cmp dword [esp + 0x48], 0xfffffff7
jge 0x37d9b9
mov edi, 0xffffffff
push edi
call fcn.0035c880
add esp, 4
mov dword [esp + 8], 0xd762c93b
mov dword [esp + 0xc], 0xd368d579
mov dword [esp + 0x10], 0xdf6ad17d
mov dword [esp + 0x14], 0xdb74dd70
mov dword [esp + 0x18], 0xd9d8
mov ebx, 0xd344172e
mov ecx, 0xbbe8d1
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ebx + 0x2cbbe8da]
mov ebp, ecx
and ebp, 0x98a83d
mov edi, ebx
and edi, 0x81001442
or edi, ebp
xor edi, edx
xor edi, 0x52dcab3d
lea edx, [edi - 0x205473e7]
mov ebp, 0x205473e6
sub ebp, edi
or ebp, 1
add edi, ebp
add edi, 0xdfab8c1a
or edx, 1
mov ebp, edi
and ebp, edx
xor edx, edi
lea edx, [edx + ebp*2]
mov byte [esp + ebx + 0x2cbbe8da], dl
inc ebx
dec ecx
cmp ebx, 0xd3441742
jne 0x37da00
movzx ecx, word [esi]
mov edi, eax
test cx, cx
je 0x37da81
add esi, 2
mov edi, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edi], cx
add edi, 2
movzx ecx, word [esi]
add esi, 2
test cx, cx
jne 0x37da70
mov word [edi], 0
movzx ecx, word [esp + 8]
test cx, cx
mov dword [esp + 0x48], eax
je 0x37dab1
lea edx, [esp + 0xa]
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edi], cx
add edi, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x37daa0
mov word [edi], 0
mov dword [esp + 8], 0x3332311a
mov word [esp + 0xc], 0
lea eax, [esp + 8]
xor ecx, ecx
xor edx, edx
nop
nop
nop
mov esi, ecx
and esi, 0xfffffff8
add esi, edx
movzx ebx, byte [eax]
xor esi, 0x83c40534
mov ebp, esi
and ebp, ebx
mov edi, ebp
not edi
or esi, ebx
lea ebx, [edi*2 + 1]
add ebx, ebp
and ebx, esi
add bl, 0xfc
mov byte [eax], bl
inc edx
inc eax
add ecx, 2
cmp ecx, 0xc
jne 0x37dad0
lea eax, [esp + 8]
push 0
push 0
push 0xc00000
push eax
mov esi, dword [esp + 0x50]
push esi
mov edi, dword [esp + 0x5c]
push edi
push dword [esp + 0x11c]
call fcn.00375390
add esp, 0x1c
mov ecx, dword [esp + 0x5c]
and cl, 1
or cl, al
mov dword [esp + 0x5c], ecx
jmp dword [0x39ca00]
push edi
call fcn.0035c890
add esp, 4
jmp dword [0x39ca08]
jmp dword [0x39ca08]
push esi
call fcn.0035c890
add esp, 4
mov edx, dword [esp + 0x44]
add edx, 4
xor eax, eax
mov ecx, edx
mov dword [esp + 0x44], edx
cmp edx, 0xc
setne al
jmp dword [eax*4 + 0x39c950]
push dword [esp + 4]
push 1
push dword [0x3a037c]
push eax
call fcn.00390f10
add esp, 0x10
mov ebx, dword [esp]
jmp dword [0x39c9f0]
xor eax, eax
jmp dword [0x39caf8]
push ebp
mov esi, eax
call fcn.0035c890
mov eax, esi
add esp, 4
jmp dword [0x39cb00]
lea eax, [esp + 0x20]
push 0
push eax
push dword [esp + 0x20]
call fcn.00394880
add esp, 0xc
not eax
shr eax, 0x1f
mov dword [esp + 8], 0
jmp dword [eax*4 + 0x39ca18]
mov dword [esp + 0x70], ebp
jmp dword [0x39ca20]
mov esi, dword [esp + 0x20]
lea eax, [esi + 1]
push eax
call fcn.0035c880
add esp, 4
push 0
push esi
push eax
push dword [esp + 0x24]
call fcn.00394950
add esp, 0x10
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, dword [esp + 0x20]
lea eax, [esi + 1]
push eax
call fcn.0035c880
add esp, 4
mov edi, eax
push 0
push esi
push eax
push dword [esp + 0x24]
call fcn.00394950
add esp, 0x10
jmp dword [0x39ca28]
not eax
shr eax, 0x1f
mov dword [esp + 8], 0
jmp dword [eax*4 + 0x39ca30]
mov eax, dword [esp + 0x20]
mov byte [edi + eax], 0
mov dword [esp + 8], 0
mov esi, edi
nop
nop
mov dword [esp + 0x24], 0x6266649e
mov dword [esp + 0x28], 0x666d586a
mov word [esp + 0x2c], 0x153f
mov byte [esp + 0x2e], 0xf2
mov word [esp + 0x2f], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x24]
mov edx, eax
and edx, 0xd
mov ebx, eax
and ebx, 2
mov ebp, eax
or ebp, 2
imul ebp, ebx
xor ebx, 2
imul ebx, edx
mov edx, eax
xor edx, 0xe1c536ff
add edx, ebp
add edx, ebx
mov ebx, edx
and ebx, ecx
add ebx, ebx
sub edx, ebx
lea ebx, [edx + ecx]
add ecx, edx
add ecx, 0x9725ed04
mov edx, 1
sub edx, ebx
not edx
and edx, 1
mov ebp, ecx
and ebp, 0xfe
xor ecx, 1
add ecx, ebx
add ecx, 0x9725ed04
sub ecx, ebp
add ecx, edx
mov byte [esp + eax + 0x24], cl
inc eax
cmp eax, 0xd
jne 0x37dde0
movzx ecx, byte [esp + 0x24]
test cl, cl
je 0x37de90
lea eax, [esp + 0x24]
mov ebp, esi
jmp 0x37de67
movzx ecx, byte [eax]
test cl, cl
je 0x37dea2
movzx edx, byte [esi]
test dl, dl
je 0x37dea0
inc esi
inc eax
lea ebx, [ebp + 1]
cmp dl, cl
je 0x37de7b
mov ebp, ebx
mov esi, ebx
je 0x37de60
lea eax, [esp + 0x24]
jmp 0x37de60
mov ebp, esi
jmp 0x37dea2
xor ebp, ebp
xor eax, eax
test ebp, ebp
sete al
jmp dword [eax*4 + 0x39ca38]
lea esi, [ebp + 0xa]
movzx eax, byte [ebp + 0xa]
xor edx, edx
test al, al
je 0x37dee0
mov ecx, esi
lea ebx, [esp + 0x1c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp al, 0x22
je 0x37def0
movzx eax, byte [ecx + 1]
inc ecx
test al, al
jne 0x37ded0
jmp 0x37def2
lea ebx, [esp + 0x1c]
jmp 0x37def2
mov edx, ecx
mov ecx, edx
sub ecx, esi
xor eax, eax
cmp ecx, 5
setb al
jmp dword [eax*4 + 0x39ca40]
xor eax, eax
cmp byte [edx - 1], 0x74
setne al
jmp dword [eax*4 + 0x39ca48]
xor eax, eax
cmp byte [edx - 2], 0x78
setne al
jmp dword [eax*4 + 0x39ca50]
xor eax, eax
cmp byte [edx - 3], 0x74
setne al
jmp dword [eax*4 + 0x39ca58]
xor eax, eax
cmp byte [edx - 4], 0x2e
setne al
jmp dword [eax*4 + 0x39ca60]
mov dword [esp + 0x10], edx
mov eax, ecx
inc eax
mov dword [esp + 4], eax
mov dword [esp + 0xc], ecx
lea eax, [ecx + ecx + 2]
jns 0x37df5f
mov eax, 0xffffffff
push eax
call fcn.0035c880
add esp, 4
mov dword [esp], eax
push dword [esp + 0x10]
push esi
push dword [esp + 0xc]
push eax
call fcn.0035e990
add esp, 0x10
push 0x60
push 3
push 0x120089
lea eax, [esp + 0x20]
push eax
push dword [esp + 0x10]
call fcn.00394520
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x39ca68]
mov eax, dword [esp + 0x10]
mov esi, eax
mov ebx, dword [esp]
jmp dword [0x39cac8]
push ebx
mov esi, eax
call fcn.0035c890
add esp, 4
nop
nop
nop
mov eax, dword [case.0x37d47f.83]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
jmp 0x37ddb0
jmp dword [0x39ca74]
mov dword [esp + 0x6c], ebx
xor eax, eax
mov ecx, dword [esp]
jmp dword [0x39caa4]
mov ecx, dword [esp]
nop
cmp word [ecx], 0
lea ecx, [ecx + 2]
jne 0x37dff0
mov ecx, dword [esp]
jmp case.0x37defe.25
add ecx, 2
test dx, dx
je 0x37e020
mov ebx, eax
movzx edx, word [ecx]
mov eax, ecx
cmp dx, 0x5c
je 0x37e000
mov eax, ebx
jmp 0x37e000
mov ecx, dword [esp]
xor eax, eax
jmp dword [0x39caa8]
xor eax, eax
test ebx, ebx
setne al
jmp dword [eax*4 + 0x39cab0]
xor ebx, ebx
xor eax, eax
jmp 0x37e04b
sub ebx, dword [esp]
sar ebx, 1
inc ebx
mov eax, dword [esp + 0xc]
sub eax, ebx
add eax, 0x1b
push eax
call fcn.0035c880
add esp, 4
mov dword [esp + 4], eax
mov dword [esp + 0x68], ebx
sub dword [esp + 0xc], ebx
mov dword [esp + 0x24], 0x7c7e7451
mov dword [esp + 0x28], 0x7163797a
mov dword [esp + 0x2c], 0x7e5c2174
mov dword [esp + 0x30], 0x286d6078
mov dword [esp + 0x34], 0x7a6a6a4a
mov dword [esp + 0x38], 0x2c767c6c
mov word [esp + 0x3c], 0x222f
mov byte [esp + 0x3e], 0x16
mov dword [esp + 0x3f], 0
xor ebx, ebx
xor ecx, ecx
nop
nop
nop
nop
nop
mov eax, ebx
and eax, 4
mov edx, ecx
xor edx, 0x82
add edx, eax
xor dl, byte [esp + ecx + 0x24]
add dl, 0x76
mov byte [esp + ecx + 0x24], dl
inc ecx
add ebx, 2
cmp ecx, 0x1f
jne 0x37e0b0
mov ebx, dword [esp + 0x68]
add esi, ebx
movzx ecx, byte [esp + 0x24]
mov eax, dword [esp + 4]
test cl, cl
je 0x37e0fb
lea edx, [esp + 0x25]
mov eax, dword [esp + 4]
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x37e0f0
mov byte [eax], 0
mov ecx, dword [esp + 0xc]
test ecx, ecx
je 0x37e135
add ebx, ebp
mov ebp, ecx
mov ecx, dword [esp + 0x10]
sub ecx, ebx
add ecx, 0xfffffff5
and ebp, 3
je 0x37e139
xor edx, edx
movzx ebx, byte [esi]
cmp bl, 1
sbb esi, 0xffffffff
mov byte [eax + edx], bl
inc edx
cmp ebp, edx
jne 0x37e11a
add eax, edx
sub dword [esp + 0xc], edx
mov edx, eax
jmp 0x37e139
mov edx, eax
jmp 0x37e17b
cmp ecx, 3
mov ebx, dword [esp + 0xc]
jb 0x37e17b
movzx ecx, byte [esi]
cmp cl, 1
sbb esi, 0xffffffff
mov byte [eax], cl
movzx ecx, byte [esi]
cmp cl, 1
sbb esi, 0xffffffff
mov byte [eax + 1], cl
movzx ecx, byte [esi]
cmp cl, 1
sbb esi, 0xffffffff
mov byte [eax + 2], cl
movzx ecx, byte [esi]
cmp cl, 1
sbb esi, 0xffffffff
lea edx, [eax + 4]
mov byte [eax + 3], cl
mov eax, edx
add ebx, 0xfffffffc
jne 0x37e142
mov byte [edx], 0
mov ecx, dword [esp + 0xcc]
push dword [esp + 0x1c]
mov ebx, dword [esp + 0x70]
push ebx
mov esi, dword [esp + 0xc]
push esi
call fcn.0035d410
mov ecx, dword [esp + 8]
and cl, 1
or cl, al
mov dword [esp + 8], ecx
jmp dword [0x39cab8]
push esi
call fcn.0035c890
add esp, 4
jmp dword [0x39cac0]
mov dword [esp + 4], edx
push edx
call fcn.0035c880
add esp, 4
mov ebx, eax
push 0
push dword [esp + 8]
push eax
push dword [esp + 0x20]
call fcn.00394950
add esp, 0x10
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x39ca98]
jmp dword [0x39cac0]
push ebx
call fcn.0035c890
add esp, 4
jmp case.0x37defe.16
push 0
push ebx
push dword [esp + 0x1c]
call fcn.00394880
add esp, 0xc
push 0
push ebx
push dword [esp + 0x1c]
call fcn.00394880
add esp, 0xc
jmp dword [0x39ca7c]
mov edx, dword [esp + 0x1c]
test eax, eax
setns al
cmp edx, 0x100000
setb cl
and cl, al
movzx eax, cl
jmp dword [eax*4 + 0x39ca80]
mov ebp, dword [esp + 0x14]
mov dword [esp + 0x24], 0xf4f5f6f7
mov esi, 0x92bb3fd4
nop
nop
nop
nop
movzx edx, byte [esp + esi + 0x6d44c050]
mov ebx, edx
and ebx, esi
mov eax, ebx
or al, 0xfd
inc al
mov ecx, ebx
and cl, 0xd5
mul cl
mov ecx, eax
add cl, dl
mov eax, ebx
shr al, 1
and al, 1
or bl, 2
mul bl
add al, al
sub cl, al
movzx eax, cl
add eax, esi
add al, 0xdc
mov byte [esp + esi + 0x6d44c050], al
inc esi
cmp esi, 0x92bb3fd8
jne 0x37e250
mov eax, dword [0x3a0374]
test eax, eax
mov ebx, dword [esp]
je 0x37e2c8
mov ecx, dword [esp + 0x24]
xor edx, edx
mov esi, dword [0x3a0378]
nop
nop
nop
nop
nop
cmp dword [esi + edx*8], 0xb62b8d10
je 0x37e2c0
inc edx
cmp eax, edx
jne 0x37e2b0
jmp 0x37e2c8
mov eax, dword [esi + edx*8 + 4]
cmp eax, ecx
jne 0x37e2d4
mov eax, dword [esp + 0x10]
mov esi, eax
jmp dword [0x39cac8]
push ebp
push 1
push dword [0x3a037c]
push eax
call fcn.00390f10
add esp, 0x10
mov eax, dword [esp + 0x10]
mov esi, eax
jmp dword [0x39cac8]
jmp dword [0x39caec]
mov ebp, dword [esp + 0x70]
jmp dword [0x39caf0]
push edi
call fcn.0035c890
add esp, 4
mov edi, dword [esp + 0x18]
mov dword [esp + 0x24], 0xf4f5f6f7
mov esi, 0x92bb3fd4
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + esi + 0x6d44c050]
mov ebx, edx
and ebx, esi
mov eax, ebx
or al, 0xfd
inc al
mov ecx, ebx
and cl, 0xd5
mul cl
mov ecx, eax
add cl, dl
mov eax, ebx
shr al, 1
and al, 1
or bl, 2
mul bl
add al, al
sub cl, al
movzx eax, cl
add eax, esi
add al, 0xdc
mov byte [esp + esi + 0x6d44c050], al
inc esi
cmp esi, 0x92bb3fd8
jne 0x37e330
mov eax, dword [0x3a0374]
test eax, eax
je 0x37e3a8
mov ecx, dword [esp + 0x24]
xor edx, edx
mov esi, dword [0x3a0378]
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [esi + edx*8], 0xb62b8d10
je 0x37e3a0
inc edx
cmp eax, edx
jne 0x37e390
jmp 0x37e3a8
mov eax, dword [esi + edx*8 + 4]
cmp eax, ecx
jne 0x37e3d1
mov eax, dword [esp + 8]
and al, 1
jmp dword [0x39caf8]
jmp dword [0x39cb00]
nop
nop
nop
nop
nop
nop
jmp dword [0x39cb0c]
add esp, 0xb8
pop esi
pop edi
pop ebx
pop ebp
ret
push edi
push 1
push dword [0x3a037c]
push eax
call fcn.00390f10
add esp, 0x10
mov eax, dword [esp + 8]
and al, 1
jmp dword [0x39caf8]
int3
jmp dword [0x39d110]
mov eax, 0xb
mov ecx, 1
cpuid
jmp dword [0x39d118]
mov eax, 0xb
mov ecx, 1
cpuid
jmp dword [0x39d118]
and ecx, 0xff00
xor eax, eax
cmp ecx, 0x200
sete al
jmp dword [eax*4 + 0x39d11c]
movzx edi, byte [esi + 0x10]
xor eax, eax
xor ecx, ecx
cpuid
cmp eax, 4
jl 0x37f757
mov eax, 4
xor ecx, ecx
cpuid
sar eax, 0x1a
jmp 0x37f78e
mov eax, 0x80000000
xor ecx, ecx
cpuid
mov dword [esi + 0x10], eax
mov eax, 1
xor ecx, ecx
cpuid
mov eax, 1
test edx, 0x10000000
je 0x37f78f
cmp dword [esi + 0x10], 0x80000008
jl 0x37f78f
mov eax, 0x80000008
xor ecx, ecx
cpuid
movzx eax, cl
inc eax
mov ebx, edi
mov dword [esi + 0x10], eax
jmp 0x380f41
mov byte [ebx], 0
jmp dword [0x39d058]
mov eax, dword [esi + 0x1c]
movzx ecx, word [eax]
test cx, cx
je 0x37f800
add eax, 2
xor edx, edx
mov ebx, ecx
jmp 0x37f7cc
inc edx
movzx ebx, word [eax]
add eax, 2
test bx, bx
je 0x37f802
cmp bx, 0x7f
jbe 0x37f7c0
mov dword [esi + 8], edx
movzx edx, bx
cmp edx, 0x7ff
ja 0x37f7f0
mov edx, dword [esi + 8]
add edx, 2
jmp 0x37f7c1
cmp bx, 0xffff
mov edx, dword [esi + 8]
je 0x37f7c1
add edx, 3
jmp 0x37f7c1
xor edx, edx
mov ebx, edx
and ebx, 1
xor edx, 1
lea eax, [edx + ebx*2]
add eax, 3
and eax, 0xfffffffc
call fcn.0035c7e0
mov eax, esp
and eax, 0xfffffff0
mov esp, eax
mov dword [esi + 0xc], eax
test cx, cx
je 0x37f9a0
lea edx, [edx + ebx*2]
dec edx
mov dword [esi + 0xc], eax
mov dword [esi + 8], edx
test edx, edx
je 0x37f9a0
mov ebx, dword [esi + 0x1c]
mov dword [esi + 0xc], eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, cx
lea edx, [ebx + 2]
mov dword [esi + 0x14], edx
cmp cx, 0x7f
ja 0x37f870
mov ebx, dword [esi + 0xc]
lea edx, [ebx + 1]
mov byte [ebx], cl
jmp 0x37f930
cmp ecx, 0x7ff
ja 0x37f8a0
cmp dword [esi + 8], 2
jb 0x37f8a0
mov edx, ecx
shr edx, 6
add dl, 0xc0
mov ebx, dword [esi + 0xc]
mov byte [ebx], dl
and cl, 0x3f
or cl, 0x80
lea edx, [ebx + 2]
mov byte [ebx + 1], cl
jmp 0x37f930
mov edx, ecx
and edx, 0xfc00
cmp edx, 0xd800
jne 0x37f954
cmp dword [esi + 8], 4
jb 0x37f954
movzx edx, word [ebx + 2]
mov dword [esi + 0x20], edx
shl ecx, 0xa
add edx, ecx
add edx, 0xfca02400
mov dword [esi + 0x14], edx
shr edx, 0x12
add dl, 0xf0
mov ecx, dword [esi + 0xc]
mov byte [ecx], dl
mov ecx, dword [esi + 0x14]
shr ecx, 0xc
mov edx, ecx
not edx
or edx, 0x3f
add edx, ecx
add dl, 0x81
mov ecx, dword [esi + 0xc]
mov byte [ecx + 1], dl
mov ecx, dword [esi + 0x14]
shr ecx, 6
and cl, 0x3f
or cl, 0x80
mov edx, dword [esi + 0xc]
mov byte [edx + 2], cl
add ebx, 4
mov ecx, dword [esi + 0x20]
and cl, 0x3f
or cl, 0x80
mov byte [edx + 3], cl
mov ecx, edx
add edx, 4
mov dword [esi + 0x14], ebx
mov ebx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 8]
add ecx, ebx
sub ecx, edx
mov dword [esi + 8], ecx
mov ebx, dword [esi + 0x14]
mov dword [esi + 0xc], edx
movzx ecx, word [ebx]
test cx, cx
je 0x37f9a0
cmp dword [esi + 8], 0
jne 0x37f850
jmp 0x37f9a0
movzx edx, dx
cmp edx, 0xdc00
jne 0x37f964
mov ebx, dword [esi + 0x14]
jmp 0x37f940
cmp dword [esi + 8], 3
jb 0x37f993
mov edx, ecx
shr edx, 0xc
or dl, 0xe0
mov ebx, dword [esi + 0xc]
mov byte [ebx], dl
mov edx, ecx
shr edx, 6
and dl, 0x3f
or dl, 0x80
mov byte [ebx + 1], dl
and cl, 0x3f
or cl, 0x80
lea edx, [ebx + 3]
mov byte [ebx + 2], cl
jmp 0x37f930
mov ebx, dword [esi + 0xc]
mov edx, ebx
jmp 0x37f930
mov ecx, dword [esi + 0xc]
mov byte [ecx], 0
movzx ecx, byte [eax]
mov ebx, edi
test cl, cl
je 0x37f7a0
inc eax
mov ebx, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [ebx], cl
inc ebx
movzx ecx, byte [eax]
inc eax
test cl, cl
jne 0x37f9c0
jmp 0x37f7a0
mov ebx, dword [esi + 0x40]
push 0xe810d870
push dword [0x3a0368]
call fcn.00393a90
add esp, 8
mov edi, eax
mov byte [ebx], 0
mov eax, dword [esi + 0xf4]
mov dword [eax], 0x200
push eax
push ebx
push 6
call edi
mov edx, dword [esi + 0x70]
mov dword [edx], 0x7b965cbe
mov dword [edx + 4], 0x5a532027
mov dword [edx + 8], 0xbf9e7722
mov word [edx + 0xc], 0
mov byte [edx + 0xe], 0
mov eax, 0x5e
mov ecx, 0xa1
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [edx + eax - 0x5e]
mov edx, ecx
xor edx, eax
and edx, ebx
xor edx, eax
add dl, 0x2a
mov ebx, dword [esi + 0x70]
mov byte [ebx + eax - 0x5e], dl
mov edx, dword [esi + 0x70]
inc eax
dec ecx
cmp eax, 0x6d
jne 0x37fa30
movzx eax, byte [edx]
test al, al
je 0x37fa6d
inc edx
mov ecx, dword [esi + 8]
mov ebx, dword [esi + 0x40]
nop
mov byte [ecx], al
inc ecx
movzx eax, byte [edx]
inc edx
test al, al
jne 0x37fa60
jmp 0x37fa73
mov ecx, dword [esi + 8]
mov ebx, dword [esi + 0x40]
mov edx, ecx
mov byte [ecx], 0
movzx eax, byte [ebx]
test al, al
je 0x37fa9d
inc ebx
mov ecx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [ecx], al
inc ecx
movzx eax, byte [ebx]
inc ebx
test al, al
jne 0x37fa90
jmp 0x37fa9f
mov ecx, edx
mov ebx, ecx
mov byte [ecx], 0
mov eax, dword [esi + 0x44]
mov byte [eax], 0
mov ecx, dword [esi + 0xf8]
mov dword [ecx], 0x200
push ecx
push eax
push 5
call edi
mov eax, dword [esi + 0x30]
mov dword [eax], 0x9f767c5e
mov dword [eax + 4], 0xa1aeaaa7
mov dword [eax + 8], 0x99b3a4b1
mov dword [eax + 0xc], 0x5d7c
xor eax, eax
nop
nop
nop
nop
mov ecx, eax
and cl, 0xfe
mov edx, eax
and dl, 1
sub cl, dl
movzx edx, cl
mov ecx, eax
xor ecx, 0xe
add ecx, eax
add ecx, edx
mov edx, dword [esi + 0x30]
xor cl, byte [edx + eax]
add cl, 0xba
mov edx, dword [esi + 0x30]
mov byte [edx + eax], cl
mov ecx, dword [esi + 0x30]
inc eax
cmp eax, 0x10
jne 0x37fae0
movzx eax, byte [ecx]
test al, al
je 0x37fb2d
inc ecx
mov edx, dword [esi + 0x44]
nop
nop
nop
nop
nop
mov byte [ebx], al
inc ebx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x37fb20
jmp 0x37fb30
mov edx, dword [esi + 0x44]
mov ecx, ebx
mov byte [ebx], 0
movzx eax, byte [edx]
test al, al
je 0x37fb4b
inc edx
nop
nop
nop
mov byte [ecx], al
inc ecx
movzx eax, byte [edx]
inc edx
test al, al
jne 0x37fb40
mov ebx, ecx
mov byte [ecx], 0
mov eax, dword [esi + 0x48]
mov byte [eax], 0
mov ecx, dword [esi + 0xfc]
mov dword [ecx], 0x10
push ecx
push eax
push 4
call edi
mov edi, dword [esi + 0x100]
mov dword [edi], 0x4d7e7416
mov dword [edi + 4], 0x2a24a9b9
mov dword [edi + 8], 0x7183633
mov byte [edi + 0xc], 0x64
mov dword [edi + 0xd], 0
mov eax, 0x4fc90a3a
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [edi + eax - 0x4fc90a3a]
mov edx, ecx
and edx, eax
add dl, dl
sub cl, dl
movzx ecx, cl
add ecx, eax
add cl, 0xde
mov byte [edi + eax - 0x4fc90a3a], cl
inc eax
cmp eax, 0x4fc90a4b
jne 0x37fba0
movzx eax, byte [edi]
test al, al
je 0x37fbed
inc edi
mov ecx, dword [esi + 0x48]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [ebx], al
inc ebx
movzx eax, byte [edi]
inc edi
test al, al
jne 0x37fbe0
jmp 0x37fbf0
mov ecx, dword [esi + 0x48]
mov byte [ebx], 0
movzx eax, byte [ecx]
test al, al
je 0x37fc0b
inc ecx
nop
nop
nop
nop
nop
mov byte [ebx], al
inc ebx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x37fc00
mov dword [esi + 8], ebx
mov byte [ebx], 0
mov edi, dword [esi + 0x34]
mov word [edi], 0
push 0xb2aef31b
push dword [0x3a0368]
call fcn.00393a90
add esp, 8
push 0x56
push edi
call eax
mov edx, dword [esi + 0xb4]
mov dword [edx], 0x25cad8ea
mov dword [edx + 4], 0x16071d0f
mov dword [edx + 8], 0xcf191a0b
mov dword [edx + 0xc], 0xf7d0
mov byte [edx + 0x10], 0
mov eax, 0xa7
mov ecx, 0x58
movzx edi, byte [edx + eax - 0xa7]
mov edx, eax
xor edx, ecx
and edx, edi
xor edx, ecx
mov bl, 0xbc
sub bl, dl
mov edx, dword [esi + 0xb4]
mov byte [edx + eax - 0xa7], bl
inc eax
dec ecx
cmp eax, 0xb8
jne 0x37fc60
movzx eax, byte [edx]
test al, al
je 0x37fcad
inc edx
mov edi, dword [esi + 8]
mov ebx, dword [esi + 0x34]
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [edx]
inc edx
test al, al
jne 0x37fca0
jmp 0x37fcb3
mov edi, dword [esi + 8]
mov ebx, dword [esi + 0x34]
mov byte [edi], 0
movzx edx, word [ebx]
mov eax, edi
test dx, dx
mov dword [esi + 8], edi
je 0x37fdf7
mov ecx, 0x55
mov eax, edi
nop
nop
movzx edx, dx
lea edi, [ebx + 2]
mov dword [esi + 0xc], edi
cmp dx, 0x7f
ja 0x37fcf0
lea edi, [eax + 1]
mov byte [eax], dl
jmp 0x37fd13
cmp edx, 0x7ff
ja 0x37fd40
cmp ecx, 2
jb 0x37fd40
mov ebx, edx
shr ebx, 6
add bl, 0xc0
mov byte [eax], bl
and dl, 0x3f
or dl, 0x80
lea edi, [eax + 2]
mov byte [eax + 1], dl
mov ebx, dword [esi + 0xc]
add ecx, eax
sub ecx, edi
mov eax, edi
mov edi, dword [esi + 8]
movzx edx, word [ebx]
test dx, dx
je 0x37fdf7
test ecx, ecx
jne 0x37fcd0
jmp 0x37fdf7
mov edi, edx
and edi, 0xfc00
cmp edi, 0xd800
jne 0x37fdaf
cmp ecx, 4
jb 0x37fdaf
movzx edi, word [ebx + 2]
mov dword [esi + 0xc], edi
shl edx, 0xa
mov dword [esi + 0x34], ebx
lea ebx, [edx + edi]
add ebx, 0xfca02400
mov edx, ebx
shr edx, 0x12
add dl, 0xf0
mov byte [eax], dl
mov edi, ebx
shr edi, 0xc
mov edx, edi
not edx
or edx, 0x3f
add edx, edi
add dl, 0x81
mov byte [eax + 1], dl
shr ebx, 6
and bl, 0x3f
or bl, 0x80
mov byte [eax + 2], bl
mov ebx, dword [esi + 0x34]
add ebx, 4
mov edx, dword [esi + 0xc]
and dl, 0x3f
or dl, 0x80
mov byte [eax + 3], dl
lea edi, [eax + 4]
jmp 0x37fd16
movzx edi, di
cmp edi, 0xdc00
jne 0x37fdc2
mov ebx, dword [esi + 0xc]
jmp 0x37fd1c
cmp ecx, 3
jb 0x37fdf0
mov ebx, edx
shr ebx, 0xc
or bl, 0xe0
mov byte [eax], bl
mov ebx, edx
shr ebx, 6
and bl, 0x3f
or bl, 0x80
mov byte [eax + 1], bl
and dl, 0x3f
or dl, 0x80
lea edi, [eax + 3]
mov byte [eax + 2], dl
jmp 0x37fd13
mov edi, eax
jmp 0x37fd13
mov byte [eax], 0
sub eax, edi
mov dword [esi + 0xc], eax
mov ecx, dword [esi + 0x104]
mov dword [ecx], 0x3eded4f6
mov dword [ecx + 4], 0xc30b696e
mov dword [ecx + 8], 0x7270081a
mov word [ecx + 0xc], 0x3b73
mov byte [ecx + 0xe], 0xea
mov word [ecx + 0xf], 0
mov eax, ecx
mov byte [ecx + 0x11], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, ecx
and edx, 8
mov edi, ecx
and edi, 2
mov ebx, edi
xor ebx, 2
imul ebx, edx
or edx, 2
imul edx, edi
mov edi, ecx
xor edi, 0x5299e52a
add edi, ebx
add edi, edx
mov ebx, eax
movzx edx, byte [eax + ecx]
xor edi, edx
add edi, 0xbdfa068e
mov edx, edi
and edx, 0x20
xor edi, 0xa0
lea edx, [edi + edx*2]
mov byte [eax + ecx], dl
mov edx, ecx
and edx, 1
xor ecx, 1
lea ecx, [ecx + edx*2]
cmp ecx, 0x12
jb 0x37fe40
mov edi, dword [esi + 8]
add edi, dword [esi + 0xc]
mov ecx, eax
movzx eax, byte [eax]
test al, al
je 0x37febb
inc ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x37feb0
mov byte [edi], 0
call fcn.00385310
xor ecx, ecx
test eax, eax
setne cl
mov dword [esi + 0x14], eax
mov edx, eax
jmp dword [ecx*4 + 0x39d09c]
mov dword [esi + 8], edi
mov edx, dword [esi + 0xa8]
mov dword [edx], 0x2f133036
mov dword [edx + 4], 0x66505e7e
mov byte [edx + 8], 0xc0
mov dword [edx + 9], 0
mov word [edx + 0xd], 0
mov eax, 0x18479db2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [edx + eax - 0x18479db2]
lea edx, [eax - 0x18479d00]
and edx, edi
mov ebx, edx
and ebx, 0xfffffffd
mov ecx, edx
or ecx, 0xfffffffd
inc ecx
imul ecx, ebx
mov ebx, edx
and ebx, 2
or edx, 2
imul edx, ebx
add ecx, edi
sub ecx, edx
add ecx, eax
mov edx, ecx
and edx, 5
xor ecx, 0x85
lea ecx, [ecx + edx*2]
mov edx, dword [esi + 0xa8]
inc cl
mov byte [edx + eax - 0x18479db2], cl
inc eax
cmp eax, 0x18479dc1
jne 0x37ff10
movzx eax, byte [edx]
test al, al
je 0x3801ff
inc edx
mov ecx, dword [esi + 8]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [ecx], al
inc ecx
movzx eax, byte [edx]
inc edx
test al, al
jne 0x37ff80
jmp 0x380202
mov edx, dword [edx]
xor ecx, ecx
test edx, edx
setne cl
jmp dword [ecx*4 + 0x39d0cc]
mov dword [edi], 0x202d090a
add edi, 4
mov dword [esi + 0xc], edx
mov edx, dword [edx + 8]
movzx ebx, byte [edx]
test bl, bl
je 0x37ffcb
inc edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], bl
inc edi
movzx ebx, byte [edx]
inc edx
test bl, bl
jne 0x37ffc0
mov byte [edi], 0
xor eax, eax
mov edx, dword [esi + 0xc]
cmp byte [edx + 4], 3
setb al
jmp dword [eax*4 + 0x39d0a4]
mov byte [edi], 0x20
movzx ecx, byte [edx + 4]
xor eax, eax
test cl, cl
sete al
mov edx, dword [esi + 0x11c]
jmp dword [eax*4 + 0x39d0ac]
mov dword [esi + 8], edi
xor eax, eax
cmp cl, 1
sete al
jmp dword [eax*4 + 0x39d0b4]
mov ecx, dword [esi + 0x118]
lea eax, [ecx + 0xa]
mov dword [ecx], 0xf8f8e6e9
mov dword [ecx + 4], 0xf9fde1f9
mov word [ecx + 8], 0x43e7
mov byte [eax + 2], 0
mov word [eax], 0
mov edx, 0x17f09bf3
mov edi, 0xe80f640c
nop
nop
nop
mov eax, edi
and eax, 0x880b4413
mov ebx, edx
and ebx, 0x13a093ec
or ebx, eax
movzx eax, byte [ecx + edx - 0x17f09bf3]
xor ebx, eax
xor ebx, 0x8c5b4c13
mov eax, ebx
and eax, 1
or ebx, 1
add ebx, eax
add bl, 0x40
mov byte [ecx + edx - 0x17f09bf3], bl
inc edx
dec edi
cmp edx, 0x17f09c00
jne 0x380040
mov edx, ecx
jmp 0x3801b2
lea eax, [edx + 6]
mov dword [edx], 0x43404a69
mov word [edx + 4], 0xbf5b
mov byte [eax + 4], 0
mov dword [eax], 0
xor ecx, ecx
nop
nop
nop
nop
nop
mov eax, ecx
add al, 0xdf
xor al, byte [edx + ecx]
add al, 0xa5
mov byte [edx + ecx], al
inc ecx
cmp ecx, 0xb
jne 0x3800b0
jmp 0x3801b5
mov eax, dword [esi + 0x10]
lea edx, [eax + 5]
jmp dword [0x39d0bc]
mov dword [eax], 0x5ea0ae51
mov byte [eax + 4], 0xf0
mov dword [edx + 3], 0
mov dword [edx], 0
mov edi, 0xd5
mov ebx, 0x8c63cc2a
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [eax + edi - 0xd5]
mov ecx, edi
xor ecx, ebx
and ecx, eax
xor ecx, ebx
not ecx
mov eax, ecx
and eax, 0xd6
or ecx, 0xd6
add ecx, eax
inc cl
mov eax, dword [esi + 0x10]
mov byte [eax + edi - 0xd5], cl
mov eax, dword [esi + 0x10]
inc edi
dec ebx
cmp edi, 0xe1
jne 0x380100
nop
nop
nop
nop
nop
nop
mov dword [eax], 0x5ea0ae51
mov byte [eax + 4], 0xf0
mov dword [edx + 3], 0
mov dword [edx], 0
mov edi, 0xd5
mov ebx, 0x8c63cc2a
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [eax + edi - 0xd5]
mov ecx, edi
xor ecx, ebx
and ecx, eax
xor ecx, ebx
not ecx
mov eax, ecx
and eax, 0xd6
or ecx, 0xd6
add ecx, eax
inc cl
mov eax, dword [esi + 0x10]
mov byte [eax + edi - 0xd5], cl
mov eax, dword [esi + 0x10]
inc edi
dec ebx
cmp edi, 0xe1
jne 0x380170
jmp dword [0x39d0c4]
mov edx, eax
mov edi, dword [esi + 8]
inc edi
movzx ebx, byte [edx]
test bl, bl
je 0x3801cb
inc edx
nop
nop
mov byte [edi], bl
inc edi
movzx ebx, byte [edx]
inc edx
test bl, bl
jne 0x3801c0
mov byte [edi], 0
mov edx, dword [esi + 0xc]
mov edx, dword [edx]
xor ecx, ecx
test edx, edx
setne cl
jmp dword [ecx*4 + 0x39d0cc]
mov dword [esi + 8], edi
jmp dword [0x39d0d4]
mov ecx, dword [esi + 0x14]
mov edi, ecx
call fcn.00386770
push edi
call fcn.0035c890
add esp, 4
jmp case.0x380da6.16
mov ecx, dword [esi + 8]
mov dword [esi + 8], ecx
mov byte [ecx], 0
mov eax, dword [esi + 0x2c]
mov dword [eax], 0xd986b09e
mov dword [eax + 4], 0x97ded8c9
mov word [eax + 8], 0x5fbc
mov dword [eax + 0xa], 0
xor ecx, ecx
mov edx, 0xffffffff
nop
nop
nop
nop
mov dword [esi + 0x10], edx
mov edx, dword [esi + 0x10]
or edx, 0x97f23a19
add edx, ecx
inc edx
mov edi, edx
and edi, 0xfffffffd
mov eax, edx
and eax, 2
or edx, 2
imul edx, eax
xor eax, 2
imul eax, edi
mov ebx, ecx
xor ebx, 0x97f23a19
add ebx, edx
mov edx, dword [esi + 0x2c]
movzx edx, byte [edx + ecx]
add ebx, eax
mov eax, ebx
and eax, edx
add edx, ebx
mov edi, edx
not edi
lea edi, [edi + eax*2]
and edi, ebx
mov eax, edi
or eax, 0xfffffffd
inc eax
mov ebx, edi
and ebx, 0xfffffffd
imul ebx, eax
mov eax, edi
and eax, 2
or edi, 2
imul edi, eax
sub ebx, edi
add ebx, edx
mov edx, dword [esi + 0x10]
mov eax, ebx
and eax, 2
xor ebx, 0x82
lea eax, [ebx + eax*2]
inc al
mov edi, dword [esi + 0x2c]
mov byte [edi + ecx], al
inc ecx
dec edx
cmp ecx, 0xe
jne 0x380230
mov ecx, dword [esi + 0x2c]
movzx eax, byte [ecx]
test al, al
je 0x3802dd
inc ecx
mov edx, dword [esi + 8]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x3802d0
jmp 0x3802e0
mov edx, dword [esi + 8]
mov byte [edx], 0
movzx eax, byte [0x39f000]
test al, al
je 0x380301
xor ecx, ecx
mov byte [edx + ecx], al
movzx eax, byte [ecx + 0x39f001]
inc ecx
test al, al
jne 0x3802f0
add edx, ecx
mov dword [esi + 8], edx
mov byte [edx], 0
mov edi, dword [esi + 0x10c]
mov dword [edi + 4], 0
mov dword [edi], 0
push 0x6829a8bc
push dword [0x3a0368]
call fcn.00393a90
add esp, 8
push edi
call eax
mov eax, dword [edi]
mov ecx, dword [edi + 4]
shld ecx, eax, 0x16
push 0xa
push 0xb
push dword [esi + 0x108]
push ecx
call fcn.00372dd0
add esp, 0x10
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x94]
mov word [eax], 0xf3e5
mov byte [eax + 2], 0x32
mov dword [eax + 3], 0
mov byte [eax + 7], 0
mov ecx, 0x74
mov edx, 0x8b
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [eax + ecx - 0x74]
mov ebx, edx
xor ebx, ecx
and ebx, edi
xor ebx, ecx
add bl, 0xbc
mov byte [eax + ecx - 0x74], bl
inc ecx
dec edx
cmp ecx, 0x7c
jne 0x380380
mov eax, dword [esi + 0x110]
mov dword [eax], 0x87dae8ca
mov dword [eax + 4], 0x98c694f7
mov dword [eax + 8], 0xe789a5b3
mov word [eax + 0xc], 0x2fc0
mov dword [eax + 0xe], 0
mov byte [eax + 0x12], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
mov edi, ecx
and edi, 0x15
xor edi, 0x11b1ea35
mov edx, ecx
and edx, 0xa
sub edx, edi
movzx edi, byte [eax + ecx]
xor edx, edi
lea ebx, [edx + 0x7f]
neg edx
and edx, 0x76
and ebx, 0x89
sub ebx, edx
mov byte [eax + ecx], bl
inc ecx
cmp ecx, 0x13
jne 0x3803d0
movzx ecx, byte [eax]
test cl, cl
je 0x38041d
inc eax
mov edi, dword [esi + 8]
nop
nop
nop
nop
mov byte [edi], cl
inc edi
movzx ecx, byte [eax]
inc eax
test cl, cl
jne 0x380410
jmp 0x380420
mov edi, dword [esi + 8]
mov byte [edi], 0
mov eax, dword [esi + 0x10]
movzx ecx, byte [eax]
test cl, cl
je 0x38043b
inc eax
nop
nop
mov byte [edi], cl
inc edi
movzx ecx, byte [eax]
inc eax
test cl, cl
jne 0x380430
mov byte [edi], 0
mov ecx, dword [esi + 0x94]
movzx eax, byte [ecx]
test al, al
je 0x38045b
inc ecx
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x380450
xor eax, eax
xor ecx, ecx
cpuid
mov eax, dword [esi + 0x4c]
mov dword [eax], ebx
mov dword [esi + 8], edi
mov byte [edi], 0
mov dword [eax + 4], edx
mov dword [eax + 8], ecx
mov byte [eax + 0xc], 0
mov ecx, dword [esi + 0x98]
mov dword [ecx], 0xd4fec0e6
mov dword [ecx + 4], 0x23f22420
mov dword [ecx + 8], 0x18320933
mov dword [ecx + 0xc], 0x8deac11a
mov byte [ecx + 0x10], 0
mov eax, 0x2eada7da
movzx edi, byte [ecx]
lea edx, [edi + edi]
not edx
add edx, edi
or edx, eax
not edi
lea ebx, [eax - 0x2eada700]
and ebx, edi
lea edi, [edx + edx]
not edi
add edi, edx
not edx
and edx, edi
or edx, ebx
mov bl, 0x46
sub bl, dl
mov byte [ecx], bl
inc ecx
dec eax
cmp eax, 0x2eada7c9
jne 0x3804a0
mov edx, dword [esi + 0x98]
movzx eax, byte [edx]
test al, al
je 0x3804fd
inc edx
mov edi, dword [esi + 8]
mov ecx, dword [esi + 0x4c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [edx]
inc edx
test al, al
jne 0x3804f0
jmp 0x380503
mov edi, dword [esi + 8]
mov ecx, dword [esi + 0x4c]
mov byte [edi], 0
movzx eax, byte [ecx]
test al, al
je 0x38051b
inc ecx
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x380510
mov eax, 0x80000002
xor ecx, ecx
cpuid
mov dword [esi + 0x10], ecx
mov ecx, dword [esi + 0x58]
mov dword [ecx], eax
mov dword [ecx + 4], ebx
mov eax, dword [esi + 0x10]
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], edx
mov eax, 0x80000003
mov ecx, 0
cpuid
mov dword [esi + 0x10], ecx
mov ecx, dword [esi + 0x58]
mov dword [ecx + 0x10], eax
mov eax, ecx
mov dword [ecx + 0x14], ebx
mov ecx, dword [esi + 0x10]
mov dword [eax + 0x18], ecx
mov dword [eax + 0x1c], edx
mov eax, 0x80000004
mov ecx, 0
cpuid
mov dword [esi + 0x10], ecx
mov ecx, dword [esi + 0x58]
mov dword [ecx + 0x20], eax
mov dword [esi + 8], edi
mov byte [edi], 0
mov eax, ecx
mov dword [ecx + 0x24], ebx
mov ecx, dword [esi + 0x10]
mov dword [eax + 0x28], ecx
mov dword [eax + 0x2c], edx
mov edx, eax
mov ebx, dword [esi + 0x114]
mov eax, ebx
add eax, 0x30
mov dword [esi + 0xc], eax
mov dword [esi + 0x10], edx
mov ecx, 0xc
mov edi, ebx
mov eax, dword [esi + 0x10]
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
add edx, 0x30
mov eax, dword [esi + 0xc]
mov edi, eax
xor ecx, ecx
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
mov ecx, eax
dec ecx
xor edx, edx
cmp byte [eax - 1], 0x20
sete dl
jmp dword [edx*4 + 0x39d0dc]
mov byte [ecx], 0
xor eax, eax
cmp byte [ecx - 1], 0x20
lea ecx, [ecx - 1]
sete al
jmp dword [eax*4 + 0x39d0dc]
xor eax, eax
cmp byte [ebx], 0x20
sete al
jmp dword [eax*4 + 0x39d0e4]
inc ebx
xor eax, eax
cmp byte [ebx], 0x20
sete al
jmp dword [eax*4 + 0x39d0e4]
mov ecx, dword [esi + 0x74]
mov dword [ecx], 0x482e3416
mov dword [ecx + 4], 0x5122585c
mov dword [ecx + 8], 0x49637c61
mov dword [ecx + 0xc], 0x524
xor eax, eax
movzx edx, byte [ecx + eax]
mov edi, eax
and edi, 2
mov ecx, eax
or ecx, 0x2aa52682
add ecx, edi
mov edi, ecx
and edi, edx
add ecx, edx
add edi, edi
sub ecx, edi
add ecx, 0x2ac63f75
mov edx, ecx
and edx, 1
xor ecx, 1
lea ecx, [ecx + edx*2]
mov edx, dword [esi + 0x74]
mov byte [edx + eax], cl
mov ecx, dword [esi + 0x74]
inc eax
cmp eax, 0x10
jne 0x380630
movzx eax, byte [ecx]
test al, al
je 0x38068d
inc ecx
mov edi, dword [esi + 8]
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x380680
jmp 0x380690
mov edi, dword [esi + 8]
mov byte [edi], 0
movzx eax, byte [ebx]
test al, al
je 0x3806ac
nop
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [ebx + 1]
inc ebx
test al, al
jne 0x3806a0
mov byte [edi], 0
mov dword [esi + 0x80], 0xf4f5f6f7
mov edx, 0xd4
nop
nop
movzx ebx, byte [esi + edx - 0x54]
mov dword [esi + 0x10], ebx
and ebx, edx
mov eax, ebx
or al, 0xfd
inc al
mov ecx, ebx
and cl, 0xd5
mul cl
mov ecx, eax
add cl, byte [esi + 0x10]
mov eax, ebx
shr al, 1
and al, 1
or bl, 2
mul bl
add al, al
sub cl, al
movzx eax, cl
add eax, edx
add al, 0xdc
mov byte [esi + edx - 0x54], al
inc edx
cmp edx, 0xd8
jne 0x3806c0
mov eax, dword [esi + 0x80]
mov ecx, dword [0x3a0374]
test ecx, ecx
mov dword [esi + 8], edi
je case.default.0x38075a
xor edx, edx
mov edi, dword [0x3a0378]
nop
nop
nop
nop
nop
nop
cmp dword [edi + edx*8], 0x9abdb589
je 0x380730
inc edx
cmp ecx, edx
jne 0x380720
jmp case.default.0x38075a
mov ecx, dword [edi + edx*8 + 4]
cmp ecx, eax
je case.default.0x38075a
push 0
push 0x2c
push dword [esi + 0x88]
push 0
push 4
push dword [0x3a037c]
push ecx
call fcn.00390f10
add esp, 0x1c
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x39d0ec]
mov dword [esi + 0x10], 0
jmp 0x380777
mov eax, dword [esi + 0x88]
movzx eax, byte [eax + 0x28]
mov dword [esi + 0x10], eax
mov eax, 0xb
xor ecx, ecx
cpuid
mov edi, ebx
sar ecx, 8
mov eax, ecx
xor eax, 0xffffff00
or ecx, 0xff
and ecx, eax
xor eax, eax
cmp ecx, 1
sete al
jmp dword [eax*4 + 0x39d0f4]
mov eax, 0xb
mov ecx, 1
cpuid
mov edi, ebx
and ecx, 0xff00
xor eax, eax
cmp ecx, 0x100
sete al
jmp dword [eax*4 + 0x39d0fc]
jmp dword [0x39d13c]
xor eax, eax
xor ecx, ecx
cpuid
cmp eax, 4
jge case.0x38075a.20
mov eax, 0x80000000
xor ecx, ecx
cpuid
mov eax, 1
xor ecx, ecx
cpuid
test edx, 0x10000000
jmp case.0x38075a.20
mov eax, 4
xor ecx, ecx
cpuid
sar eax, 0x1a
inc eax
jmp dword [0x39d144]
xor eax, eax
xor ecx, ecx
cpuid
cmp eax, 4
jge 0x380800
mov eax, 0x80000000
xor ecx, ecx
cpuid
mov edi, eax
mov eax, 1
xor ecx, ecx
cpuid
mov eax, 1
test edx, 0x10000000
je 0x380854
cmp edi, 0x80000008
jl 0x380854
mov eax, 0x80000008
xor ecx, ecx
cpuid
movzx eax, cl
inc eax
jmp dword [0x39d144]
movzx ebx, byte [esi + 0x10]
mov dword [esi + 0x10], eax
jmp 0x380f41
mov eax, 0xb
xor ecx, ecx
cpuid
and ecx, 0xff00
xor eax, eax
cmp ecx, 0x200
sete al
jmp dword [eax*4 + 0x39d104]
xor eax, eax
test di, di
sete al
jmp dword [eax*4 + 0x39d124]
mov eax, ebx
xor edx, edx
div di
movzx eax, ax
mov dword [esi + 0x10], eax
jmp 0x380f41
mov dword [esi + 0xc], ebx
jmp dword [0x39d130]
mov ebx, dword [esi + 0xd8]
lea eax, [ebx + 4]
push 0x344
push 0
push eax
call fcn.0035c930
add esp, 0xc
mov dword [ebx], 0x348
push 0xa41744c7
push dword [edi]
mov edi, ebx
call fcn.00393a90
add esp, 8
push 0
push ebx
push 0
push 0
call eax
movzx ecx, word [ebx + 0x44]
mov eax, dword [esi + 8]
mov dword [esi + 0x10], eax
test cx, cx
je 0x380a2f
add edi, 0x44
mov eax, 0x7f
mov edx, dword [esi + 8]
mov dword [esi + 0x10], edx
nop
nop
nop
nop
nop
movzx edx, cx
lea ecx, [edi + 2]
cmp dx, 0x7f
ja 0x380930
mov edi, dword [esi + 0x10]
lea ebx, [edi + 1]
mov byte [edi], dl
jmp 0x3809d0
cmp edx, 0x7ff
ja 0x380960
cmp eax, 2
jb 0x380960
mov ebx, edx
shr ebx, 6
add bl, 0xc0
mov edi, dword [esi + 0x10]
mov byte [edi], bl
and dl, 0x3f
or dl, 0x80
lea ebx, [edi + 2]
mov byte [edi + 1], dl
jmp 0x3809d0
mov ebx, edx
and ebx, 0xfc00
cmp ebx, 0xd800
jne 0x3809eb
cmp eax, 4
jb 0x3809eb
movzx ecx, word [edi + 2]
mov dword [esi + 0xc], ecx
shl edx, 0xa
add edx, ecx
add edx, 0xfca02400
mov ebx, edx
shr ebx, 0x12
add bl, 0xf0
mov ecx, dword [esi + 0x10]
mov byte [ecx], bl
mov ecx, edx
shr ecx, 0xc
mov ebx, ecx
not ebx
or ebx, 0x3f
add ebx, ecx
add bl, 0x81
mov ecx, dword [esi + 0x10]
mov byte [ecx + 1], bl
shr edx, 6
and dl, 0x3f
or dl, 0x80
mov byte [ecx + 2], dl
mov edx, ecx
add edi, 4
mov ecx, dword [esi + 0xc]
and cl, 0x3f
or cl, 0x80
mov byte [edx + 3], cl
lea ebx, [edx + 4]
mov ecx, edi
mov edi, edx
nop
add eax, edi
sub eax, ebx
mov edi, ecx
mov dword [esi + 0x10], ebx
movzx ecx, word [edi]
test cx, cx
je 0x380a2f
test eax, eax
jne 0x380910
jmp 0x380a2f
movzx ebx, bx
cmp ebx, 0xdc00
jne 0x3809fa
mov edi, ecx
jmp 0x3809d9
cmp eax, 3
jb 0x380a28
mov ebx, edx
shr ebx, 0xc
or bl, 0xe0
mov edi, dword [esi + 0x10]
mov byte [edi], bl
mov ebx, edx
shr ebx, 6
and bl, 0x3f
or bl, 0x80
mov byte [edi + 1], bl
and dl, 0x3f
or dl, 0x80
lea ebx, [edi + 3]
mov byte [edi + 2], dl
jmp 0x3809d0
mov edi, dword [esi + 0x10]
mov ebx, edi
jmp 0x3809d0
mov eax, dword [esi + 0x10]
mov byte [eax], 0
sub eax, dword [esi + 8]
mov dword [esi + 0x10], eax
push 0xdc
push 0
mov edi, dword [esi + 0xe4]
push edi
call fcn.0035c930
add esp, 0xc
mov word [edi + 0x44], 0xdc
push 0x2747a387
mov eax, dword [esi + 0x8c]
push dword [eax]
call fcn.00393a90
add esp, 8
push edi
push 0xffffffffffffffff
push 0
call eax
push 0xa
push 0xc
push dword [esi + 0xdc]
push dword [edi + 0xac]
call fcn.003869a0
add esp, 0x10
mov ebx, eax
push 0xa
push 0xc
push dword [esi + 0xe0]
push dword [edi + 0xb0]
call fcn.003869a0
add esp, 0x10
mov ecx, dword [esi + 0xa0]
mov dword [ecx], 0xb59e80e6
mov dword [ecx + 4], 0x4942464b
mov dword [ecx + 8], 0x7b967c57
mov dword [ecx + 0xc], 0x717b7e6f
mov dword [ecx + 0x10], 0x70757b7b
mov dword [ecx + 0x14], 0xc5a2897e
mov word [ecx + 0x18], 0
mov byte [ecx + 0x1a], 0
xor ecx, ecx
lea edx, [ecx + 0x15]
mov edi, 0xa
sub edi, ecx
and edi, 0x18
and edx, 0x27
or edx, edi
mov edi, dword [esi + 0xa0]
xor dl, byte [edi + ecx]
xor dl, 0x58
add dl, 0x57
mov byte [edi + ecx], dl
mov edx, ecx
and edx, 1
xor ecx, 1
lea ecx, [ecx + edx*2]
cmp ecx, 0x1b
jb 0x380ae0
mov ecx, dword [esi + 0x10]
add dword [esi + 8], ecx
movzx ecx, byte [edi]
test cl, cl
je 0x380b3d
inc edi
mov edx, dword [esi + 8]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [edi]
inc edi
test cl, cl
jne 0x380b30
jmp 0x380b40
mov edx, dword [esi + 8]
mov byte [edx], 0
movzx ecx, byte [ebx]
test cl, cl
mov edi, edx
je 0x380b5b
inc ebx
nop
nop
nop
mov byte [edi], cl
inc edi
movzx ecx, byte [ebx]
inc ebx
test cl, cl
jne 0x380b50
mov byte [edi], pe_nt_image_headers32
inc edi
movzx ecx, byte [eax]
test cl, cl
je 0x380b7d
inc eax
mov ebx, dword [esi + 0x28]
nop
nop
nop
nop
nop
nop
mov byte [edi], cl
inc edi
movzx ecx, byte [eax]
inc eax
test cl, cl
jne 0x380b70
jmp 0x380b80
mov ebx, dword [esi + 0x28]
mov byte [edi], 0
push dword [esi + 0x14]
call dword [fcn.0039f160]
jmp 0x381240
mov edx, dword [esi + 0xe8]
mov dword [edx], 0x4eb2a48a
mov dword [edx + 4], 0x4e205058
mov dword [edx + 8], 0x61565424
mov word [edx + 0xc], 0xa584
mov dword [edx + 0xe], 0
mov word [edx + 0x12], 0
xor eax, eax
mov edi, dword [esi + 8]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0xdc
xor cl, byte [edx + eax]
add cl, 0xb4
mov byte [edx + eax], cl
inc eax
cmp eax, 0x14
jne 0x380bd0
movzx eax, byte [edx]
test al, al
mov ebx, dword [esi + 0xf0]
je 0x380c0d
inc edx
mov ecx, dword [esi + 0x3c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [edx]
inc edx
test al, al
jne 0x380c00
jmp 0x380c10
mov ecx, dword [esi + 0x3c]
mov byte [edi], 0
movzx eax, byte [ecx]
test al, al
je 0x380c2b
inc ecx
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x380c20
mov byte [edi], 0
mov byte [ebx], 0
mov eax, dword [esi + 0x90]
mov dword [eax], 0x10
push 0xb239caff
push dword [0x3a0368]
call fcn.00393a90
add esp, 8
push dword [esi + 0x90]
push ebx
call eax
mov edx, dword [esi + 0xec]
mov dword [edx], 0xc82e3416
mov dword [edx + 4], 0xf6f2f0ff
mov dword [edx + 8], 0xc9f0e4f4
mov word [edx + 0xc], 0x524
mov dword [edx + 0xe], 0
mov byte [edx + 0x12], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0x42
xor cl, byte [edx + eax]
add cl, 0xb6
mov byte [edx + eax], cl
inc eax
cmp eax, 0x13
jne 0x380c90
movzx eax, byte [edx]
test al, al
mov ecx, edx
mov edx, dword [esi + 0xb0]
je 0x380ccb
inc ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x380cc0
mov byte [edi], 0
movzx eax, byte [ebx]
test al, al
je 0x380ceb
inc ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [ebx]
inc ebx
test al, al
jne 0x380ce0
mov dword [esi + 8], edi
mov byte [edi], 0
mov eax, dword [esi + 0x54]
mov dword [eax], 0
mov dword [eax + 4], 0
mov eax, dword [0x39f05c]
mov dword [esi + 0xc], eax
mov dword [edx], 0xf35ef151
mov dword [edx + 4], 0xff5ffd42
mov dword [edx + 8], 0xfb53f948
mov dword [edx + 0xc], 0xc7b4c5b7
mov dword [edx + 0x10], 0xc36ec1b6
mov dword [edx + 0x14], 0xcf7acd78
mov dword [edx + 0x18], 0xc9c8
mov byte [edx + 0x1c], 0
xor ecx, ecx
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [edx + eax]
mov ebx, ecx
and ebx, 0x28
mov edx, eax
xor edx, 0x60759754
add edx, ebx
mov ebx, edx
and ebx, edi
add edx, edi
add ebx, ebx
sub ebx, edx
lea edx, [ebx + ebx]
and edx, 0x4a
xor ebx, 0x5a
sub ebx, edx
mov edx, dword [esi + 0xb0]
add bl, 2
mov byte [edx + eax], bl
inc eax
add ecx, 2
cmp eax, 0x1d
jne case.default.0x380da6
push 0x800
push 0
push edx
call dword [esi + 0xc]
mov edi, dword [esi + 0x54]
mov ecx, edi
push eax
call fcn.0038fc50
movzx eax, al
jmp dword [eax*4 + 0x39d094]
mov eax, dword [esi + 0x38]
mov byte [eax], 0
mov ebx, dword [esi + 0xd4]
mov dword [ebx], 0x101
push 0xebbb107d
push dword [edi]
call fcn.00393a90
add esp, 8
push ebx
push dword [esi + 0x38]
call eax
mov edx, dword [esi + 0xa4]
mov dword [edx], 0x2ef2c49a
mov dword [edx + 4], 0xc50c300f
mov word [edx + 8], 0x99f8
mov dword [edx + 0xa], 0
mov eax, 0x60187b24
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [edx + eax - 0x60187b24]
mov edi, eax
xor edi, ecx
lea edx, [edi + edi]
not edx
add edx, edi
and edx, eax
mov ebx, edx
or ebx, 0xfffffffd
inc ebx
mov edi, edx
and edi, 0x60187b3d
imul edi, ebx
mov ebx, edx
and ebx, 2
or edx, 2
imul edx, ebx
add edi, ecx
sub edi, edx
mov edx, dword [esi + 0xa4]
add edi, eax
mov ecx, edi
and ecx, 0x4b
xor edi, 0x4b
lea ecx, [edi + ecx*2]
inc cl
mov byte [edx + eax - 0x60187b24], cl
inc eax
cmp eax, 0x60187b32
jne 0x380e00
movzx eax, byte [edx]
test al, al
mov ecx, dword [esi + 8]
je 0x380e7d
inc edx
mov edi, dword [esi + 0x38]
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [ecx], al
inc ecx
movzx eax, byte [edx]
inc edx
test al, al
jne 0x380e70
jmp 0x380e80
mov edi, dword [esi + 0x38]
mov byte [ecx], 0
movzx eax, byte [edi]
test al, al
mov ebx, dword [esi + 0x40]
mov edx, dword [esi + 0x54]
je 0x380eab
inc edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [ecx], al
inc ecx
movzx eax, byte [edi]
inc edi
test al, al
jne 0x380ea0
mov dword [esi + 8], ecx
mov byte [ecx], 0
push dword [edx]
call dword [fcn.0039f160]
jmp 0x37f9d3
xor eax, eax
xor ecx, ecx
cpuid
cmp eax, 4
jge case.0x38075a.17
mov eax, 0x80000000
xor ecx, ecx
cpuid
mov eax, 1
xor ecx, ecx
cpuid
test edx, 0x10000000
xor eax, eax
xor ecx, ecx
cpuid
cmp eax, 4
jl 0x380eff
mov eax, 4
xor ecx, ecx
cpuid
sar eax, 0x1a
inc eax
jmp dword [0x39d134]
mov eax, 0x80000000
xor ecx, ecx
cpuid
mov edi, eax
mov eax, 1
xor ecx, ecx
cpuid
mov eax, 1
test edx, 0x10000000
je 0x380f35
cmp edi, 0x80000008
jl 0x380f35
mov eax, 0x80000008
xor ecx, ecx
cpuid
movzx eax, cl
inc eax
jmp dword [0x39d134]
mov dword [esi + 0x10], eax
mov ebx, dword [esi + 0xc]
movzx eax, bx
push 0xa
push 4
push dword [esi + 0x9c]
push eax
call fcn.003867a0
add esp, 0x10
mov dword [esi + 0xc], eax
mov ebx, dword [esi + 0x78]
mov dword [ebx], 0x54baa88a
mov dword [ebx + 4], 0x79867c48
mov dword [ebx + 8], 0x4e495d4c
mov dword [ebx + 0xc], 0x8d68524c
mov byte [ebx + 0x10], 0xac
mov dword [ebx + 0x11], 0
mov ecx, 0x144196db
mov eax, 0x24
nop
nop
nop
movzx edi, byte [ebx + ecx - 0x144196db]
mov ebx, eax
xor ebx, ecx
and ebx, edi
xor ebx, ecx
lea edi, [ebx + ebx]
mov edx, edi
and edx, 0x70
xor ebx, 0xb8
add ebx, edx
and edi, 2
xor ebx, 1
add ebx, edi
mov edx, dword [esi + 0x78]
mov byte [edx + ecx - 0x144196db], bl
mov ebx, dword [esi + 0x78]
inc ecx
dec eax
cmp ecx, 0x144196f0
jne 0x380f90
movzx edx, byte [ebx]
test dl, dl
je 0x380fed
inc ebx
mov edi, dword [esi + 0x6c]
mov eax, dword [esi + 8]
nop
nop
nop
mov byte [eax], dl
inc eax
movzx edx, byte [ebx]
inc ebx
test dl, dl
jne 0x380fe0
jmp 0x380ff3
mov edi, dword [esi + 0x6c]
mov eax, dword [esi + 8]
mov ecx, eax
mov byte [eax], 0
mov ebx, dword [esi + 0xc]
movzx edx, byte [ebx]
test dl, dl
je 0x38101b
inc ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [ecx], dl
inc ecx
movzx edx, byte [ebx]
inc ebx
test dl, dl
jne 0x381010
mov dword [esi + 8], ecx
mov byte [ecx], 0
movzx eax, byte [esi + 0x10]
push 0xa
push 4
push dword [esi + 0x9c]
push eax
call fcn.0035df60
add esp, 0x10
mov dword [esi + 0x10], eax
mov dword [edi], 0x547a680a
mov dword [edi + 4], 0x28063c48
mov dword [edi + 8], 0xdcc9ddd5
mov dword [edi + 0xc], 0x6e0f26
mov ecx, 0x6d844dbb
mov eax, 0x24f76544
movzx ebx, byte [edi + ecx - 0x6d844dbb]
lea edx, [ebx + ebx]
not edx
add edx, ebx
and edx, ecx
and ebx, eax
or ebx, edx
mov edx, ebx
and edx, 0x58
mov edi, ebx
xor edi, 0x58
lea edx, [edi + edx*2]
mov edi, dword [esi + 0x6c]
and ebx, 1
or edx, 1
add edx, ebx
mov byte [edi + ecx - 0x6d844dbb], dl
inc ecx
dec eax
cmp ecx, 0x6d844dcb
jne 0x381060
movzx ecx, byte [edi]
test cl, cl
je 0x3810bd
inc edi
mov edx, dword [esi + 0x50]
mov eax, dword [esi + 8]
nop
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edi]
inc edi
test cl, cl
jne 0x3810b0
jmp 0x3810c3
mov edx, dword [esi + 0x50]
mov eax, dword [esi + 8]
mov byte [eax], 0
mov edi, dword [esi + 0x10]
movzx ecx, byte [edi]
test cl, cl
je 0x3810eb
inc edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edi]
inc edi
test cl, cl
jne 0x3810e0
mov dword [esi + 8], eax
mov byte [eax], 0
mov dword [edx], 0x24425c7a
mov dword [edx + 4], 0x472c3034
mov byte [edx + 8], pe_nt_image_headers32
mov dword [edx + 9], 0
mov dword [edx + 0xc], 0
xor eax, eax
mov ecx, edx
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ebx, eax
and ebx, 0xfffffff0
add ebx, edx
movzx edi, byte [ecx]
xor edi, ebx
mov ebx, edi
xor ebx, 0x60
xor edi, 1
and edi, 9
and ebx, 0xf6
sub ebx, edi
inc bl
mov byte [ecx], bl
inc edx
inc ecx
add eax, 2
cmp eax, 0x20
jne 0x381120
mov edx, dword [esi + 0x50]
movzx eax, byte [edx]
test al, al
je 0x38117d
inc edx
mov ebx, dword [esi + 0x28]
mov ecx, dword [esi + 0x24]
mov edi, dword [esi + 8]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [edx]
inc edx
test al, al
jne 0x381170
jmp 0x381186
mov ebx, dword [esi + 0x28]
mov ecx, dword [esi + 0x24]
mov edi, dword [esi + 8]
mov dword [esi + 8], edi
mov byte [edi], 0
mov eax, dword [0x39f05c]
mov dword [ecx], 0x43d141d5
mov dword [ecx + 4], 0x47d445e1
mov dword [ecx + 8], 0x4b18491b
mov dword [ecx + 0xc], 0x4fea4d22
mov dword [ecx + 0x10], 0xb31eb11c
mov dword [ecx + 0x14], 0xb5b4
mov byte [ecx + 0x18], 0
mov ecx, 0xa08a80f0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esi + 0x24]
movzx edx, byte [edx + ecx + 0x5f757f10]
xor edx, ecx
mov edi, 0x30
sub edi, edx
or edi, 1
add edi, edx
add edx, 0x4f
xor edx, 1
lea edx, [edx + edi*2]
add dl, 0xa0
mov edi, dword [esi + 0x24]
mov byte [edi + ecx + 0x5f757f10], dl
mov edx, dword [esi + 0x24]
inc ecx
cmp ecx, 0xa08a8109
jne 0x3811d0
push 0x800
push 0
push edx
call eax
mov edi, dword [esi + 0x8c]
mov dword [edi], 0
mov dword [edi + 4], 0
mov ecx, edi
mov dword [esi + 0x14], eax
push eax
call fcn.0038fc50
movzx eax, al
jmp dword [eax*4 + 0x39d14c]
mov edi, dword [esi + 8]
mov dword [esi + 8], edi
mov byte [edi], 0
mov edx, dword [esi + 0x7c]
mov dword [edx], 0x657b7419
mov dword [edx + 4], 0x613c7c77
mov word [edx + 8], 0x636c
mov byte [edx + 0xa], 0xd6
mov word [edx + 0xb], 0
mov eax, 0x2d
mov ecx, 0xd2
movzx edi, byte [edx + eax - 0x2d]
mov edx, ecx
xor edx, eax
and edx, edi
xor edx, eax
add dl, 0x1f
mov edi, dword [esi + 0x7c]
mov byte [edi + eax - 0x2d], dl
mov edx, dword [esi + 0x7c]
inc eax
dec ecx
cmp eax, 0x3a
jne 0x381270
mov eax, dword [esi + 8]
sub eax, ebx
mov ecx, dword [ebp + 8]
push eax
push ebx
push edx
call fcn.0035d410
jmp dword [0x39d154]
jmp dword [0x39d160]
jmp dword [0x39d050]
mov eax, dword [esi + 0x1c]
movzx edx, word [eax]
test dx, dx
je 0x38148a
add eax, 2
mov dword [esi + 8], 0
mov ecx, edx
mov word [esi + 0xc], dx
jmp 0x3812ee
inc dword [esi + 8]
movzx ecx, word [eax]
add eax, 2
test cx, cx
je 0x381320
cmp cx, 0x7f
jbe 0x3812e0
mov ebx, dword [esi + 8]
movzx edx, cx
cmp edx, 0x7ff
ja 0x381310
add ebx, 2
mov dword [esi + 8], ebx
jmp 0x38131a
cmp cx, 0xffff
je 0x38131a
add dword [esi + 8], 3
movzx edx, word [esi + 0xc]
jmp 0x3812e3
mov ecx, dword [esi + 8]
lea eax, [ecx + 4]
and eax, 0xfffffffc
call fcn.0035c7e0
mov eax, esp
and eax, 0xfffffff0
mov esp, eax
test ecx, ecx
je 0x381492
mov ebx, dword [esi + 0x1c]
mov ecx, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esi + 0xc], ecx
movzx edx, dx
lea ecx, [ebx + 2]
mov dword [esi + 0x14], ecx
cmp dx, 0x7f
ja 0x381370
mov ebx, dword [esi + 0xc]
lea ecx, [ebx + 1]
mov byte [ebx], dl
jmp 0x381420
cmp edx, 0x7ff
ja 0x3813a0
cmp dword [esi + 8], 2
jb 0x3813a0
mov ecx, edx
shr ecx, 6
add cl, 0xc0
mov ebx, dword [esi + 0xc]
mov byte [ebx], cl
and dl, 0x3f
or dl, 0x80
lea ecx, [ebx + 2]
mov byte [ebx + 1], dl
jmp 0x381420
mov ecx, edx
and ecx, 0xfc00
cmp ecx, 0xd800
jne 0x381441
cmp dword [esi + 8], 4
jb 0x381441
movzx ecx, word [ebx + 2]
mov dword [esi + 0x14], ecx
shl edx, 0xa
mov dword [esi + 0x20], ebx
lea ebx, [edx + ecx]
add ebx, 0xfca02400
mov ecx, ebx
shr ecx, 0x12
add cl, 0xf0
mov edx, dword [esi + 0xc]
mov byte [edx], cl
mov edx, ebx
shr edx, 0xc
mov ecx, edx
not ecx
or ecx, 0x3f
add ecx, edx
add cl, 0x81
mov edx, dword [esi + 0xc]
mov byte [edx + 1], cl
shr ebx, 6
and bl, 0x3f
or bl, 0x80
mov byte [edx + 2], bl
mov ebx, edx
mov edx, dword [esi + 0x20]
add edx, 4
mov ecx, dword [esi + 0x14]
and cl, 0x3f
or cl, 0x80
mov byte [ebx + 3], cl
lea ecx, [ebx + 4]
mov dword [esi + 0x14], edx
nop
nop
mov edx, dword [esi + 8]
add edx, ebx
sub edx, ecx
mov dword [esi + 8], edx
mov ebx, dword [esi + 0x14]
movzx edx, word [ebx]
test dx, dx
je 0x381494
cmp dword [esi + 8], 0
jne 0x381350
jmp 0x381494
movzx ecx, cx
cmp ecx, 0xdc00
jne 0x381454
mov ebx, dword [esi + 0x14]
mov ecx, dword [esi + 0xc]
jmp 0x38142d
cmp dword [esi + 8], 3
jb 0x381483
mov ecx, edx
shr ecx, 0xc
or cl, 0xe0
mov ebx, dword [esi + 0xc]
mov byte [ebx], cl
mov ecx, edx
shr ecx, 6
and cl, 0x3f
or cl, 0x80
mov byte [ebx + 1], cl
and dl, 0x3f
or dl, 0x80
lea ecx, [ebx + 3]
mov byte [ebx + 2], dl
jmp 0x381420
mov ebx, dword [esi + 0xc]
mov ecx, ebx
jmp 0x381420
push eax
mov eax, esp
and eax, 0xfffffff0
mov esp, eax
mov ecx, eax
mov byte [ecx], 0
movzx ecx, byte [eax]
mov edx, edi
test cl, cl
je 0x3814bb
inc eax
mov edx, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [eax]
inc eax
test cl, cl
jne 0x3814b0
mov byte [edx], 0
jmp case.0x37d47f.99
mov eax, dword [edi + 0x10]
test eax, eax
je 0x3814d3
push eax
call fcn.0035c890
add esp, 4
mov dword [esi + 8], ebx
call fcn.0038b7b0
movzx eax, al
jmp dword [eax*4 + 0x39d08c]
mov ebx, dword [esi + 0xd0]
mov dword [ebx], 0x5c52646a
mov word [ebx + 4], 0xc36f
mov dword [ebx + 6], 0
mov eax, 0x9eacb631
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [ebx + eax + 0x615349cf]
mov edx, eax
and edx, ecx
add edx, edx
sub ecx, edx
add ecx, eax
lea edi, [ecx + ecx]
and edi, 0x14
mov edx, ecx
xor ecx, 0xf4
sub ecx, edi
and edx, 1
or ecx, 1
sub edx, ecx
mov byte [ebx + eax + 0x615349cf], dl
inc eax
cmp eax, 0x9eacb63b
jne 0x381510
mov dword [esi + 0x3c], ebx
jmp case.0x37d47f.115
mov ebx, dword [esi + 0x3c]
mov dword [ebx], 0x92a1a5a0
mov byte [ebx + 4], 0x38
mov dword [ebx + 5], 0
mov eax, 0x12de3f4
mov ecx, 0x1ed21c0b
nop
mov edi, eax
and edi, 0x121e408
mov edx, ecx
and edx, 0x17
or edx, edi
movzx edi, byte [ebx + ecx - 0x1ed21c0b]
xor edx, edi
mov edi, edx
xor edi, 8
and edi, 0x48
xor edx, 0xa00c03c0
lea edx, [edx + edi*2]
inc dl
mov byte [ebx + ecx - 0x1ed21c0b], dl
dec eax
inc ecx
cmp eax, 0x12de3eb
jne 0x381570
jmp case.0x37d47f.115
mov byte [edi], 0x2b
jmp dword [0x39d088]
jmp dword [0x39d080]
mov byte [edi], 0x2b
mov byte [edi], 0x2b
jmp dword [0x39d088]
inc edi
mov eax, dword [esi + 0x18]
movzx eax, word [eax + 0x28]
jmp case.0x37d47f.111
mov byte [ebx], 0xa
inc ebx
mov edi, dword [esi + 0x18]
push edi
call fcn.00382240
add esp, 4
movzx eax, al
jmp dword [eax*4 + 0x39d05c]
mov dword [esi + 8], ebx
push 0xa
push 0xb
push dword [esi + 0xc0]
push dword [edi]
call fcn.00372dd0
add esp, 0x10
mov dword [esi + 0x20], eax
push 0xa
push 0xb
push dword [esi + 0xc4]
push dword [edi + 4]
call fcn.00372dd0
add esp, 0x10
mov dword [esi + 0x14], eax
push 0xa
push 0xb
push dword [esi + 0xc8]
push dword [edi + 8]
call fcn.00372dd0
add esp, 0x10
mov dword [esi + 0xc], eax
mov eax, dword [edi + 0x10]
mov ecx, dword [esi + 0x5c]
mov dword [ecx], 0x5066708e
mov dword [ecx + 4], 0x225c635d
mov dword [ecx + 8], 0x3825323e
mov dword [ecx + 0xc], 0x956a713e
mov dword [ecx + 0x10], 0
xor ecx, ecx
xor edi, edi
nop
nop
nop
nop
nop
nop
nop
mov edx, ecx
and edx, 2
mov ebx, edi
xor ebx, 0x61
add ebx, edx
mov edx, dword [esi + 0x5c]
xor bl, byte [edx + edi]
add bl, 0x1b
mov byte [edx + edi], bl
inc edi
add ecx, 2
cmp edi, 0x14
jne 0x381670
mov ecx, dword [esi + 0x5c]
movzx edx, byte [ecx]
test dl, dl
je 0x3816ad
inc ecx
mov edi, dword [esi + 8]
nop
mov byte [edi], dl
inc edi
movzx edx, byte [ecx]
inc ecx
test dl, dl
jne 0x3816a0
jmp 0x3816b0
mov edi, dword [esi + 8]
mov byte [edi], 0
movzx edx, byte [eax]
test dl, dl
je 0x3816cb
inc eax
nop
nop
nop
nop
nop
mov byte [edi], dl
inc edi
movzx edx, byte [eax]
inc eax
test dl, dl
jne 0x3816c0
mov word [edi], 0x2820
add edi, 2
mov ebx, dword [esi + 0x20]
movzx ecx, byte [ebx]
test cl, cl
je 0x3816fd
inc ebx
mov eax, dword [esi + 0xc]
mov edx, dword [esi + 0x14]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], cl
inc edi
movzx ecx, byte [ebx]
inc ebx
test cl, cl
jne 0x3816f0
jmp 0x381703
mov eax, dword [esi + 0xc]
mov edx, dword [esi + 0x14]
mov byte [edi], 0x2e
inc edi
movzx ecx, byte [edx]
test cl, cl
je 0x38172d
inc edx
mov ebx, dword [esi + 0x84]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], cl
inc edi
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x381720
jmp 0x381733
mov ebx, dword [esi + 0x84]
mov byte [edi], 0x2e
inc edi
movzx ecx, byte [eax]
test cl, cl
je 0x38174b
inc eax
nop
mov byte [edi], cl
inc edi
movzx ecx, byte [eax]
inc eax
test cl, cl
jne 0x381740
mov byte [edi], 0x29
inc edi
push ebx
call fcn.00394320
add esp, 4
movzx eax, al
jmp dword [eax*4 + 0x39d064]
mov dword [esi + 8], edi
jmp 0x381821
mov byte [edi], 0x20
xor eax, eax
cmp dword [ebx], 1
sete al
jmp dword [eax*4 + 0x39d06c]
mov ebx, dword [esi + 0xb8]
mov dword [ebx], 0x572a33f0
mov word [ebx + 4], 0
mov byte [ebx + 6], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0x6e
xor cl, byte [ebx + eax]
add cl, 0xda
mov byte [ebx + eax], cl
inc eax
cmp eax, 7
jne 0x3817a0
jmp case.0x37d47f.106
mov dword [esi + 8], edi
mov ebx, dword [esi + 0xbc]
mov dword [ebx], 0x37f8f6b0
mov byte [ebx + 4], 0
xor eax, eax
xor ecx, ecx
nop
nop
nop
mov edi, eax
and edi, 0xc
mov edx, ecx
xor edx, 0x21345c76
add edx, edi
movzx edi, byte [ebx + ecx]
xor edx, edi
mov edi, edx
and edi, 1
xor edx, 1
lea edx, [edx + edi*2]
add dl, 0xb1
mov byte [ebx + ecx], dl
inc ecx
add eax, 2
cmp ecx, 5
jne 0x3817d0
mov edi, dword [esi + 8]
inc edi
movzx eax, byte [ebx]
test al, al
je 0x38181b
inc ebx
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [ebx]
inc ebx
test al, al
jne 0x381810
mov dword [esi + 8], edi
mov byte [edi], 0
mov eax, dword [esi + 0x60]
mov dword [eax], 0xe336cc2e
mov dword [eax + 4], 0x87f38a87
mov dword [eax + 8], 0x83efed30
mov dword [eax + 0xc], 0xb2acb91
mov word [eax + 0x10], 0
mov eax, 6
mov ecx, 0xb9
nop
mov edx, dword [esi + 0x60]
movzx edi, byte [edx + eax - 6]
mov ebx, ecx
and ebx, 0x85
mov edx, eax
and edx, 0x3a
or edx, ebx
mov ebx, ecx
or ebx, edi
not edi
xor edx, 0xc5
or edx, edi
mov edi, dword [esi + 0x60]
xor edx, ebx
add dl, 0xa2
mov byte [edi + eax - 6], dl
inc eax
dec ecx
cmp eax, 0x18
jne 0x381850
movzx eax, byte [edi]
test al, al
je 0x3818ad
inc edi
mov edx, dword [esi + 8]
mov ecx, dword [esi + 0x18]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [edi]
inc edi
test al, al
jne 0x3818a0
jmp 0x3818b3
mov edx, dword [esi + 8]
mov ecx, dword [esi + 0x18]
mov byte [edx], 0
movzx eax, byte [ecx + 0x14]
test al, al
je 0x3818db
add ecx, 0x15
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x3818d0
mov dword [esi + 8], edx
mov byte [edx], 0
mov eax, dword [esi + 0x64]
mov dword [eax], 0xfb36cc2e
mov dword [eax + 4], 0x338f808d
mov dword [eax + 8], 0x929c82f6
mov dword [eax + 0xc], 0xe7e72dca
mov word [eax + 0x10], 0x9f7
mov dword [eax + 0x12], 0
mov word [eax + 0x16], 0
mov eax, 0x92fa4ae
mov ecx, 0xe6d05b51
nop
nop
nop
nop
mov edx, dword [esi + 0x64]
movzx edx, byte [edx + eax - 0x92fa4ae]
mov edi, ecx
and edi, 0xc4100168
mov ebx, eax
and ebx, 0x903a097
sub ebx, edi
mov edi, edx
and edi, ebx
add edi, edi
sub ebx, edi
add bl, dl
mov edx, dword [esi + 0x64]
add bl, 0xa2
mov byte [edx + eax - 0x92fa4ae], bl
inc eax
dec ecx
cmp eax, 0x92fa4c6
jne 0x381920
movzx eax, byte [edx]
test al, al
je 0x38197d
inc edx
mov edi, dword [esi + 8]
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [edx]
inc edx
test al, al
jne 0x381970
jmp 0x381980
mov edi, dword [esi + 8]
mov byte [edi], 0
mov eax, dword [esi + 0x18]
movzx eax, word [eax + 0x28]
xor ecx, ecx
test ax, ax
setns cl
jmp dword [ecx*4 + 0x39d074]
cwde
push 0xa
push 7
push dword [esi + 0xcc]
push eax
call fcn.00385050
add esp, 0x10
movzx ecx, byte [eax]
test cl, cl
je 0x3819cb
inc eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], cl
inc edi
movzx ecx, byte [eax]
inc eax
test cl, cl
jne 0x3819c0
mov ebx, edi
mov byte [edi], 0
mov ecx, dword [esi + 0x68]
mov dword [ecx], 0xaa9e80e6
mov dword [ecx + 4], 0x5646464e
mov dword [ecx + 8], 0x8d964b48
mov dword [ecx + 0xc], 0x876d7f6b
mov word [ecx + 0x10], 0xcfac
mov dword [ecx + 0x12], 0
xor eax, eax
nop
nop
nop
movzx edx, byte [ecx + eax]
mov ecx, eax
and ecx, 1
xor ecx, 0x451daf81
mov edi, eax
and edi, 0x1e
sub edi, ecx
mov ecx, 0xa9
sub ecx, edi
add edi, 0xc05b1b56
xor ecx, edi
and ecx, edx
xor ecx, edi
mov edx, ecx
and edx, 1
or ecx, 1
add ecx, edx
add cl, 0xd6
mov edx, dword [esi + 0x68]
mov byte [edx + eax], cl
mov ecx, dword [esi + 0x68]
inc eax
cmp eax, 0x16
jne 0x381a00
movzx eax, byte [ecx]
test al, al
je 0x381a5d
inc ecx
mov edi, dword [esi + 0x18]
mov byte [ebx], al
inc ebx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x381a50
jmp 0x381a60
mov edi, dword [esi + 0x18]
mov byte [ebx], 0
movzx eax, byte [edi + 0x2a]
test al, al
je 0x381a7b
mov ecx, edi
add ecx, 0x2b
mov byte [ebx], al
inc ebx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x381a70
mov byte [ebx], 0
jmp case.0x37d47f.112
xor ecx, ecx
mov dword [esi + 0x1c], eax
test eax, eax
setne cl
mov ebx, edi
jmp dword [ecx*4 + 0x39d044]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
push eax
sub esp, 0xc
mov ebx, esp
sub esp, 0x14
mov dword [esi + 0x14], esp
sub esp, 0x68
mov dword [esi + 0x20], esp
sub esp, 0x40
mov dword [esi + 0x18], esp
sub esp, 0xc
mov dword [esi + 0xc0], esp
sub esp, 0xc
mov dword [esi + 0xc4], esp
sub esp, 0xc
mov dword [esi + 0xc8], esp
sub esp, 0x14
mov dword [esi + 0x5c], esp
push eax
mov dword [esi + 0x84], esp
sub esp, 8
mov dword [esi + 0xbc], esp
sub esp, 8
mov dword [esi + 0xb8], esp
sub esp, 0x14
mov dword [esi + 0x60], esp
sub esp, 0x18
mov dword [esi + 0x64], esp
sub esp, 8
mov dword [esi + 0xcc], esp
sub esp, 0x18
mov dword [esi + 0x68], esp
sub esp, 0xc
mov dword [esi + 0x3c], esp
sub esp, 0xc
mov dword [esi + 0xd0], esp
sub esp, 0x14
mov dword [esi + 0xe8], esp
sub esp, 0x10
mov dword [esi + 0xf0], esp
push eax
mov dword [esi + 0x90], esp
sub esp, 0x14
mov dword [esi + 0xec], esp
sub esp, 8
mov dword [esi + 0x54], esp
sub esp, 0x20
mov dword [esi + 0xb0], esp
sub esp, 0x104
mov dword [esi + 0x38], esp
push eax
mov dword [esi + 0xd4], esp
sub esp, 0x10
mov dword [esi + 0xa4], esp
sub esp, 0x200
mov dword [esi + 0x40], esp
push eax
mov dword [esi + 0xf4], esp
sub esp, 0x10
mov dword [esi + 0x70], esp
sub esp, 0x200
mov dword [esi + 0x44], esp
push eax
mov dword [esi + 0xf8], esp
sub esp, 0x10
mov dword [esi + 0x30], esp
sub esp, 0x10
mov dword [esi + 0x48], esp
push eax
mov dword [esi + 0xfc], esp
sub esp, 0x14
mov dword [esi + 0x100], esp
sub esp, 0xac
mov dword [esi + 0x34], esp
sub esp, 0x14
mov dword [esi + 0xb4], esp
sub esp, 0x14
mov dword [esi + 0x104], esp
sub esp, 0xc
mov dword [esi + 0x11c], esp
sub esp, 0xc
mov dword [esi + 0x10], esp
sub esp, 0x10
mov dword [esi + 0x118], esp
sub esp, 0x10
mov dword [esi + 0xa8], esp
sub esp, 0x10
mov dword [esi + 0x2c], esp
sub esp, 8
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x10c], eax
mov esp, eax
push eax
sub esp, 8
mov dword [esi + 0x108], esp
sub esp, 8
mov dword [esi + 0x94], esp
sub esp, 0x14
mov dword [esi + 0x110], esp
sub esp, 0x10
mov dword [esi + 0x4c], esp
sub esp, 0x14
mov dword [esi + 0x98], esp
sub esp, 0x30
mov dword [esi + 0x58], esp
sub esp, 0x30
mov dword [esi + 0x114], esp
sub esp, 0x10
mov dword [esi + 0x74], esp
sub esp, 0x2c
mov dword [esi + 0x88], esp
push eax
mov dword [esi + 0x9c], esp
sub esp, 0x18
mov dword [esi + 0x78], esp
sub esp, 0x10
mov dword [esi + 0x6c], esp
sub esp, 0x10
mov dword [esi + 0x50], esp
sub esp, 0x1c
mov dword [esi + 0x24], esp
sub esp, 8
mov dword [esi + 0x8c], esp
sub esp, 0x348
mov dword [esi + 0xd8], esp
sub esp, 0xdc
mov dword [esi + 0xe4], esp
sub esp, 0xc
mov dword [esi + 0xdc], esp
sub esp, 0xc
mov dword [esi + 0xe0], esp
sub esp, 0x1c
mov edi, esp
sub esp, 0x10
mov dword [esi + 0x7c], esp
push 0x1000
call fcn.0035c880
add esp, 4
mov dword [ebx], 0x89fae8da
mov dword [ebx + 4], 0x93a6abbf
mov word [ebx + 8], 0xd3fc
mov dword [ebx + 0xa], 0
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, edx
add cl, 0x4f
xor cl, byte [ebx + edx]
add cl, 0x75
mov byte [ebx + edx], cl
inc edx
cmp edx, 0xe
jne 0x381cd0
mov dword [esi + 0x1c], ebx
mov dword [esi + 0xa0], edi
mov dword [esi + 0x28], eax
mov eax, dword [0x399664]
mov dword [esi + 0xac], eax
mov ebx, dword [esi + 0x14]
mov dword [ebx], 0x18363cde
mov dword [ebx + 4], 0x7a786767
mov dword [ebx + 8], 0x7e606c7b
mov dword [ebx + 0xc], 0x69697460
mov dword [ebx + 0x10], 0xa6391e
xor edi, edi
mov eax, 0xd1
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esi + 0xc], eax
movzx ebx, byte [ebx + edi]
mov dword [esi + 8], ebx
not ebx
or ebx, eax
mov eax, ebx
shr al, 1
and al, 1
mov ecx, ebx
not cl
mov ah, cl
and ah, 0x7d
mul ah
add al, al
mov edx, dword [esi + 8]
sub dl, al
mov dword [esi + 8], edx
test bl, 2
mov ebx, dword [esi + 0x14]
sete al
or cl, 2
mul cl
add al, al
mov ecx, dword [esi + 8]
sub cl, al
movzx eax, cl
add eax, edi
add al, 0x48
mov byte [ebx + edi], al
mov eax, dword [esi + 0xc]
inc edi
dec eax
cmp edi, 0x14
jne 0x381d30
mov eax, dword [0x399660]
mov edi, dword [esi + 0x20]
mov dword [edi], 0xe60c2f29
mov dword [edi + 4], 0xe4fc33eb
mov dword [edi + 8], 0xd362ded
mov dword [edi + 0xc], 0xf11a3b11
mov dword [edi + 0x10], 0x2f1f0eb
mov dword [edi + 0x14], 0x141b120e
mov dword [edi + 0x18], 0xccac0a16
mov dword [edi + 0x1c], 0x161de9c8
mov dword [edi + 0x20], 0x1d09faca
mov dword [edi + 0x24], 0x41ed31c
mov dword [edi + 0x28], 0xd9cc021d
mov dword [edi + 0x2c], 0x120d17f8
mov dword [edi + 0x30], 0x22111c13
mov dword [edi + 0x34], 0x31252e32
mov dword [edi + 0x38], 0x83323626
mov dword [edi + 0x3c], 0x3ac6ebe7
mov dword [edi + 0x40], 0xd42d2023
mov dword [edi + 0x44], 0x22d0f3e2
mov dword [edi + 0x48], 0xe3323b3f
mov dword [edi + 0x4c], 0x293fcaf8
mov dword [edi + 0x50], 0x81ededfc
mov dword [edi + 0x54], 0x91909392
mov dword [edi + 0x58], 0xa58688ee
mov dword [edi + 0x5c], 0x8d90afa3
mov byte [edi + 0x60], 0xec
mov word [edi + 0x65], 0
mov dword [edi + 0x61], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, ecx
add dl, 0xed
xor dl, byte [edi + ecx]
add dl, 0x5f
mov byte [edi + ecx], dl
inc ecx
cmp ecx, 0x67
jne 0x381e50
movzx edx, byte [edi]
mov ecx, dword [esi + 0x28]
test dl, dl
je 0x381e8b
inc edi
mov ecx, dword [esi + 0x28]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [ecx], dl
inc ecx
movzx edx, byte [edi]
inc edi
test dl, dl
jne 0x381e80
mov byte [ecx], 0
movzx edx, byte [eax]
test dl, dl
mov edi, ecx
je 0x381eab
inc eax
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], dl
inc edi
movzx edx, byte [eax]
inc eax
test dl, dl
jne 0x381ea0
mov byte [edi], 0
movzx eax, byte [ebx]
test al, al
je 0x381ecd
inc ebx
mov ecx, dword [esi + 0x1c]
mov edx, dword [esi + 0xac]
nop
mov byte [edi], al
inc edi
movzx eax, byte [ebx]
inc ebx
test al, al
jne 0x381ec0
jmp 0x381ed6
mov ecx, dword [esi + 0x1c]
mov edx, dword [esi + 0xac]
mov byte [edi], 0
movzx eax, byte [edx]
test al, al
je 0x381efb
inc edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [edx]
inc edx
test al, al
jne 0x381ef0
mov byte [edi], 0
movzx eax, byte [ecx]
test al, al
je 0x381f1b
inc ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x381f10
mov byte [edi], 0
push 0
call fcn.003939c0
add esp, 4
jmp dword [0x39d040]
push eax
sub esp, 0xc
mov edi, esp
sub esp, 0x14
mov ebx, esp
sub esp, 0x68
mov dword [esi + 0x30], esp
push 0x1000
call fcn.0035c880
add esp, 4
mov dword [esi + 0x24], eax
mov dword [edi], 0x89fae8da
mov dword [edi + 4], 0x93a6abbf
mov word [edi + 8], 0xd3fc
mov dword [edi + 0xa], 0
xor eax, eax
mov dword [esi + 0x14], edi
mov dword [esi + 0x10], ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0x4f
xor cl, byte [edi + eax]
add cl, 0x75
mov byte [edi + eax], cl
inc eax
cmp eax, 0xe
jne 0x381f80
mov eax, dword [0x399664]
mov dword [esi + 0xc], eax
mov dword [ebx], 0x18363cde
mov dword [ebx + 4], 0x7a786767
mov dword [ebx + 8], 0x7e606c7b
mov dword [ebx + 0xc], 0x69697460
mov dword [ebx + 0x10], 0xa6391e
xor edi, edi
mov edx, 0xd1
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esi + 8], edx
mov eax, dword [esi + 0x10]
movzx ebx, byte [eax + edi]
mov ecx, ebx
not ecx
or ecx, edx
mov eax, ecx
shr al, 1
and al, 1
mov edx, ecx
not dl
mov ah, dl
and ah, 0x7d
mul ah
add al, al
sub bl, al
test cl, 2
sete al
or dl, 2
mul dl
mov edx, dword [esi + 8]
add al, al
sub bl, al
movzx eax, bl
mov ebx, dword [esi + 0x10]
add eax, edi
add al, 0x48
mov byte [ebx + edi], al
inc edi
dec edx
cmp edi, 0x14
jne 0x381fd0
mov eax, dword [0x399660]
mov edi, dword [esi + 0x30]
mov dword [edi], 0xe60c2f29
mov dword [edi + 4], 0xe4fc33eb
mov dword [edi + 8], 0xd362ded
mov dword [edi + 0xc], 0xf11a3b11
mov dword [edi + 0x10], 0x2f1f0eb
mov dword [edi + 0x14], 0x141b120e
mov dword [edi + 0x18], 0xccac0a16
mov dword [edi + 0x1c], 0x161de9c8
mov dword [edi + 0x20], 0x1d09faca
mov dword [edi + 0x24], 0x41ed31c
mov dword [edi + 0x28], 0xd9cc021d
mov dword [edi + 0x2c], 0x120d17f8
mov dword [edi + 0x30], 0x22111c13
mov dword [edi + 0x34], 0x31252e32
mov dword [edi + 0x38], 0x83323626
mov dword [edi + 0x3c], 0x3ac6ebe7
mov dword [edi + 0x40], 0xd42d2023
mov dword [edi + 0x44], 0x22d0f3e2
mov dword [edi + 0x48], 0xe3323b3f
mov dword [edi + 0x4c], 0x293fcaf8
mov dword [edi + 0x50], 0x81ededfc
mov dword [edi + 0x54], 0x91909392
mov dword [edi + 0x58], 0xa58688ee
mov dword [edi + 0x5c], 0x8d90afa3
mov byte [edi + 0x60], 0xec
mov word [edi + 0x65], 0
mov dword [edi + 0x61], 0
xor ecx, ecx
nop
nop
nop
mov edx, ecx
add dl, 0xed
xor dl, byte [edi + ecx]
add dl, 0x5f
mov byte [edi + ecx], dl
inc ecx
cmp ecx, 0x67
jne 0x3820e0
movzx ecx, byte [edi]
test cl, cl
mov edx, edi
mov edi, dword [esi + 0x24]
je 0x38211b
inc edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], cl
inc edi
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x382110
mov byte [edi], 0
movzx ecx, byte [eax]
test cl, cl
je 0x38213b
inc eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], cl
inc edi
movzx ecx, byte [eax]
inc eax
test cl, cl
jne 0x382130
mov byte [edi], 0
movzx eax, byte [ebx]
test al, al
je 0x38215d
inc ebx
mov ecx, dword [esi + 0xc]
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [ebx]
inc ebx
test al, al
jne 0x382150
jmp 0x382160
mov ecx, dword [esi + 0xc]
mov byte [edi], 0
movzx eax, byte [ecx]
test al, al
je 0x38217b
inc ecx
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x382170
mov byte [edi], 0
mov ecx, dword [esi + 0x14]
movzx eax, byte [ecx]
test al, al
je 0x38219b
inc ecx
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x382190
mov byte [edi], 0
push 0
call fcn.003939c0
add esp, 4
jmp case.0x37d47f.96
push ebx
call fcn.0035c890
add esp, 4
push ebx
call fcn.0035c890
add esp, 4
jmp dword [0x39d168]
int3
sub esp, 4
mov dword [esp], edi
call fcn.0035c890
add esp, 4
mov eax, dword [esi + 0x42c]
mov eax, dword [eax]
mov ecx, dword [esi + 0x430]
mov ecx, dword [ecx]
mov eax, dword [ecx + eax*4]
jmp eax
mov al, byte [esi + 0x5c]
mov byte [esi + 0x1a0], al
mov byte [esi + 0x64], 0x20
mov byte [esi + 0x65], 0x9f
mov byte [esi + 0x66], 0xf
mov byte [esi + 0x67], 0x91
mov byte [esi + 0x68], 0x35
mov byte [esi + 0x69], 0x93
mov byte [esi + 0x6a], 0x31
mov byte [esi + 0x6b], 0x95
mov byte [esi + 0x6c], 8
mov byte [esi + 0x6d], 0x97
mov byte [esi + 0x6e], 0xd2
mov byte [esi + 0x6f], 0x89
mov byte [esi + 0x70], 0x2b
mov byte [esi + 0x71], 0x8b
mov byte [esi + 0x72], 0x1e
mov byte [esi + 0x73], 0x8d
mov byte [esi + 0x74], 0x2b
mov byte [esi + 0x75], 0x8f
mov byte [esi + 0x76], 0x3a
mov byte [esi + 0x77], 0x81
mov byte [esi + 0x78], 0x1b
mov byte [esi + 0x79], 0x83
mov byte [esi + 0x7a], 0x1d
mov byte [esi + 0x7b], 0x85
mov byte [esi + 0x7c], 0x23
mov byte [esi + 0x7d], 0x87
mov byte [esi + 0x7e], 0x86
mov byte [esi + 0x7f], 0xf9
mov eax, 0x1c
mov byte [esi + eax + 0x64], 0
add eax, 1
cmp eax, 0x1e
jne 0x382d18
xor edi, edi
cmp edi, 0x1e
jae 0x382d80
movzx edx, byte [esi + edi + 0x64]
mov eax, edi
add eax, 0x4f08dea5
mov ebx, edx
xor ebx, 0xffffffff
and eax, ebx
mov ebx, 0x5a
sub ebx, edi
and ebx, edx
or eax, ebx
mov edx, eax
and edx, 0xc4
mov ebx, eax
and ebx, 2
xor ebx, 2
mov ecx, eax
and ecx, 0xc4
imul ebx, ecx
mov ecx, eax
and ecx, 2
or edx, 2
imul edx, ecx
add edx, ebx
xor eax, 0x39
sub edx, eax
mov byte [esi + edi + 0x64], dl
add edi, 1
jmp 0x382d27
mov eax, dword [esi + 0x2dc]
mov eax, dword [eax]
mov ecx, dword [esi + 0x2e0]
mov ecx, dword [ecx]
mov eax, dword [ecx + eax*4]
jmp eax
sub esp, 4
lea eax, [esi + 0x250]
mov dword [esp], eax
mov eax, dword [0x398224]
call eax
mov eax, dword [esi + 0x60]
mov ecx, dword [eax]
add ecx, 8
mov edx, dword [esi + 0x518]
mov edx, dword [edx]
mov edi, dword [esi + 0x53c]
mov edi, dword [edi]
mov edx, dword [edi + edx*4]
jmp edx
movzx eax, al
and eax, 1
mov ecx, dword [esi + 0x40c]
mov dword [ecx], eax
mov eax, dword [esi + 0x414]
mov eax, dword [eax]
mov ecx, dword [ecx]
mov eax, dword [eax + ecx*4]
jmp eax
call fcn.0035e190
mov ecx, dword [esi + 0x3c4]
mov dword [ecx], 1
mov eax, dword [esi + 0x3cc]
mov eax, dword [eax]
mov ecx, dword [ecx]
mov eax, dword [eax + ecx*4]
jmp eax
cmp dh, bh
sbb eax, 0xb0868b63
add al, byte [eax]
add byte [ebx - 0x4b717500], cl
add al, byte [eax]
add byte [ebx - 0x7efb74f7], cl
jmp eax
mov eax, dword [esi + 0x3c8]
mov eax, dword [eax]
mov ecx, dword [esi + 0x3dc]
mov ecx, dword [ecx]
mov eax, dword [ecx + eax*4]
jmp eax
movzx eax, al
and eax, 1
mov ecx, dword [esi + 0x31c]
mov dword [ecx], eax
mov eax, dword [esi + 0x324]
mov eax, dword [eax]
mov ecx, dword [ecx]
mov eax, dword [eax + ecx*4]
jmp eax
mov eax, dword [esi + 0x500]
mov eax, dword [eax]
mov ecx, dword [esi + 0x520]
mov ecx, dword [ecx]
mov eax, dword [ecx + eax*4]
jmp eax
mov edi, edx
mov ebx, dword [edx]
mov eax, dword [esi + 0x4a4]
mov eax, dword [eax]
mov ecx, dword [esi + 0x4d4]
mov ecx, dword [ecx]
mov eax, dword [ecx + eax*4]
jmp eax
mov al, byte [esi + 0x5c]
mov byte [esi + 0x1a4], al
mov byte [esi + 0x64], 0x20
mov byte [esi + 0x65], 0x9f
mov byte [esi + 0x66], 0xf
mov byte [esi + 0x67], 0x91
mov byte [esi + 0x68], 0x35
mov byte [esi + 0x69], 0x93
mov byte [esi + 0x6a], 0x31
mov byte [esi + 0x6b], 0x95
mov byte [esi + 0x6c], 8
mov byte [esi + 0x6d], 0x97
mov byte [esi + 0x6e], 0xd2
mov byte [esi + 0x6f], 0x89
mov byte [esi + 0x70], 0x2b
mov byte [esi + 0x71], 0x8b
mov byte [esi + 0x72], 0x1e
mov byte [esi + 0x73], 0x8d
mov byte [esi + 0x74], 0x2b
mov byte [esi + 0x75], 0x8f
mov byte [esi + 0x76], 0x3a
mov byte [esi + 0x77], 0x81
mov byte [esi + 0x78], 0x1b
mov byte [esi + 0x79], 0x83
mov byte [esi + 0x7a], 0x1d
mov byte [esi + 0x7b], 0x85
mov byte [esi + 0x7c], 0x23
mov byte [esi + 0x7d], 0x87
mov byte [esi + 0x7e], 0x86
mov byte [esi + 0x7f], 0xf9
mov eax, 0x1c
mov byte [esi + eax + 0x64], 0
add eax, 1
cmp eax, 0x1e
jne 0x382ef9
xor eax, eax
cmp eax, 0x1e
jae 0x382f62
movzx edx, byte [esi + eax + 0x64]
mov ecx, eax
add ecx, 0x4f08dea5
mov edi, edx
xor edi, 0xffffffff
and ecx, edi
mov edi, 0x5a
sub edi, eax
and edi, edx
or ecx, edi
mov edx, ecx
and edx, 0xc4
mov ebx, ecx
and ebx, 2
xor ebx, 2
mov edi, ecx
and edi, 0xc4
imul ebx, edi
mov edi, ecx
and edi, 2
or edx, 2
imul edx, edi
add edx, ebx
xor ecx, 0x39
sub edx, ecx
mov byte [esi + eax + 0x64], dl
add eax, 1
jmp 0x382f08
mov ecx, dword [esi + 0x3ac]
mov dword [ecx], 0
mov eax, dword [esi + 0x3b0]
mov eax, dword [eax]
mov ecx, dword [ecx]
mov eax, dword [eax + ecx*4]
jmp eax
call fcn.0035e190
test edi, edi
setns al
mov cx, word [esi + 0x568]
sub cx, 8
sete cl
and al, cl
mov edx, dword [esi + 0x320]
mov dword [edx], 1
mov ecx, dword [esi + 0x328]
mov ecx, dword [ecx]
mov edx, dword [edx]
mov ecx, dword [ecx + edx*4]
jmp ecx
mov ecx, dword [esi + 0x38c]
mov ecx, dword [ecx]
mov edx, dword [esi + 0x390]
mov edx, dword [edx]
mov ecx, dword [edx + ecx*4]
jmp ecx
mov eax, dword [esi + 0x460]
mov eax, dword [eax]
mov ecx, dword [esi + 0x464]
mov ecx, dword [ecx]
mov eax, dword [ecx + eax*4]
jmp eax
call fcn.0035e190
mov ecx, dword [esi + 0x368]
mov dword [ecx], 0
mov eax, dword [esi + 0x374]
mov eax, dword [eax]
mov ecx, dword [ecx]
mov eax, dword [eax + ecx*4]
jmp eax
lea eax, [esi + 0x568]
sub esp, 4
mov dword [esp], eax
nop
call 0x74983ed5
mov eax, dword [esi + 0x60]
mov dword [esi + 0x28c], eax
mov al, byte [esi + 0x144]
mov byte [esi + 0x198], al
mov byte [esi + 0x148], 0xdf
mov byte [esi + 0x149], 0x99
mov byte [esi + 0x14a], 0xff
mov byte [esi + 0x14b], 0x9f
mov byte [esi + 0x14c], 0xec
mov byte [esi + 0x14d], 0x9d
mov byte [esi + 0x14e], 0xd6
mov byte [esi + 0x14f], 0xa3
mov byte [esi + 0x150], 0xc9
mov byte [esi + 0x151], 0xa1
mov byte [esi + 0x152], 0xd5
mov byte [esi + 0x153], 0xa7
mov byte [esi + 0x154], 0xd6
mov byte [esi + 0x155], 0xa5
mov byte [esi + 0x156], 0xaa
mov byte [esi + 0x157], 0xab
mov eax, 0x10
mov byte [esi + eax + 0x148], 0
add eax, 1
cmp eax, 0x12
jne 0x383098
xor ecx, ecx
cmp ecx, 0x12
jae 0x3830e4
movzx edi, byte [esi + ecx + 0x148]
mov eax, ecx
add eax, 0x1a
mov edx, 0xe5
sub edx, ecx
mov ebx, 0xe5
sub ebx, ecx
and edx, ebx
or eax, edi
xor edi, 0xffffffff
or edx, edi
and edx, eax
add dl, 0x7e
mov byte [esi + ecx + 0x148], dl
add ecx, 1
jmp 0x3830aa
mov edx, dword [esi + 0x28c]
mov eax, dword [edx]
mov eax, dword [eax + 0x10]
sub esp, 0x18
lea ecx, [esi + 0x568]
mov dword [esp + 0xc], ecx
lea ecx, [esi + 0x148]
mov dword [esp + 4], ecx
mov dword [esp], edx
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 8], 0
call eax
mov edi, eax
mov eax, dword [esi + 0x310]
mov eax, dword [eax]
mov ecx, dword [esi + 0x318]
mov ecx, dword [ecx]
mov eax, dword [ecx + eax*4]
jmp eax
inc esi
mov esi, 0x4d22897e
iretd
sub esp, 4
mov dword [esp], ebx
mov eax, dword [0x398220]
call eax
mov eax, dword [esi + 0x44c]
mov eax, dword [eax]
mov ecx, dword [esi + 0x450]
mov ecx, dword [ecx]
mov eax, dword [ecx + eax*4]
jmp eax
mov eax, dword [esi + 0x2ec]
mov eax, dword [eax]
mov ecx, dword [esi + 0x2fc]
mov ecx, dword [ecx]
mov eax, dword [ecx + eax*4]
jmp eax
mov eax, dword [esi + 0x60]
mov dword [esi + 0x200], eax
mov eax, dword [esi + 0x348]
mov eax, dword [eax]
mov ecx, dword [esi + 0x354]
mov ecx, dword [ecx]
mov eax, dword [ecx + eax*4]
jmp eax
sub esp, 4
mov eax, dword [esi + 0x208]
mov dword [esp], eax
mov eax, dword [0x398220]
call eax
mov eax, dword [esi + 0x490]
mov eax, dword [eax]
mov ecx, dword [esi + 0x4bc]
mov ecx, dword [ecx]
mov eax, dword [ecx + eax*4]
jmp eax
call fcn.0035e190
sub esp, 4
mov dword [esp], edi
call fcn.0035c890
add esp, 4
mov ecx, dword [esi + 0x548]
mov dword [ecx], 0
mov eax, dword [ebx]
mov ecx, dword [ecx]
mov eax, dword [eax + ecx*4]
jmp eax
call fcn.0035e190
mov ecx, dword [esi + 0x484]
mov dword [ecx], 0
mov eax, dword [esi + 0x4a8]
mov eax, dword [eax]
mov ecx, dword [ecx]
mov eax, dword [eax + ecx*4]
mov edi, dword [esi + 0x4f8]
jmp eax
sub cx, 8
sete cl
and al, cl
movzx eax, al
mov ecx, dword [esi + 0x370]
mov dword [ecx], eax
mov eax, dword [esi + 0x380]
mov eax, dword [eax]
mov ecx, dword [ecx]
mov eax, dword [eax + ecx*4]
jmp eax
call fcn.0035e190
mov ecx, dword [esi + 0x3d0]
mov dword [ecx], 1
mov eax, dword [esi + 0x3e0]
mov eax, dword [eax]
mov ecx, dword [ecx]
mov eax, dword [eax + ecx*4]
jmp eax
mov ecx, dword [esi + 0x46c]
mov ecx, dword [ecx]
mov edx, dword [esi + 0x474]
mov edx, dword [edx]
mov ecx, dword [edx + ecx*4]
jmp ecx
mov eax, dword [eax]
mov ecx, dword [esi + 0x480]
mov ecx, dword [ecx]
mov edx, dword [esi + 0x494]
mov edx, dword [edx]
mov ecx, dword [edx + ecx*4]
jmp ecx
mov eax, dword [esi + 0x200]
mov eax, dword [eax]
mov ecx, dword [esi + 0x398]
mov ecx, dword [ecx]
mov edx, dword [esi + 0x3a4]
mov edx, dword [edx]
mov ecx, dword [edx + ecx*4]
jmp ecx
mov ecx, dword [esi + 0x35c]
mov ecx, dword [ecx]
mov edx, dword [esi + 0x360]
mov edx, dword [edx]
mov ecx, dword [edx + ecx*4]
jmp ecx
mov eax, dword [esi + 0x3d8]
mov eax, dword [eax]
mov ecx, dword [esi + 0x3ec]
mov ecx, dword [ecx]
mov eax, dword [ecx + eax*4]
jmp eax
mov dword [esi + 0x500], eax
mov al, byte [esi + 0x174]
mov byte [esi + 0x18c], al
mov byte [esi + 0xc4], 0x6e
mov byte [esi + 0xc5], 0x1f
mov byte [esi + 0xc6], 0x6f
mov byte [esi + 0xc7], 0x11
mov byte [esi + 0xc8], 0x61
mov byte [esi + 0xc9], 0x13
mov byte [esi + 0xca], 0x66
mov byte [esi + 0xcb], 0x15
mov byte [esi + 0xcc], pe_nt_image_headers32
mov byte [esi + 0xcd], 0x17
mov byte [esi + 0xce], 0x53
mov byte [esi + 0xcf], 9
mov byte [esi + 0xd0], 0x73
mov byte [esi + 0xd1], 0xb
mov byte [esi + 0xd2], 0x75
mov byte [esi + 0xd3], 0xd
mov byte [esi + 0xd4], 0x7a
mov byte [esi + 0xd5], 0xf
mov byte [esi + 0xd6], 0x5c
mov byte [esi + 0xd7], 1
mov byte [esi + 0xd8], 0
mov byte [esi + 0xd9], 3
mov eax, 0x16
mov byte [esi + eax + 0xc4], 0
add eax, 1
cmp eax, 0x18
jne 0x3834d5
mov dword [esi + 0x4e8], ecx
mov dword [esi + 0x544], edx
mov dword [esi + 0x54c], edi
xor eax, eax
cmp eax, 0x18
jae 0x38354d
movzx edx, byte [esi + eax + 0xc4]
mov ecx, 0x7a
sub ecx, eax
mov edi, 0x7a
sub edi, eax
and ecx, edi
mov edi, edx
xor edi, 0xffffffff
or ecx, edi
mov edi, eax
add edi, 0xafbbc885
or edi, edx
and ecx, edi
add ecx, 0xccb6d2f6
mov edx, ecx
shl edx, 1
and edx, 0xcc
xor ecx, 0x66
add ecx, edx
add cl, 0xb
mov byte [esi + eax + 0xc4], cl
add eax, 1
jmp 0x3834f9
sub esp, 4
lea eax, [esi + 0xc4]
mov dword [esp], eax
mov eax, dword [0x39821c]
call eax
mov ebx, eax
mov ecx, dword [esi + 0x178]
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
mov edx, dword [esi + 0x2bc]
mov edx, dword [edx]
mov edi, dword [esi + 0x2c0]
mov edi, dword [edi]
mov edx, dword [edi + edx*4]
jmp edx
mov eax, dword [esi + 0x454]
mov eax, dword [eax]
mov ecx, dword [esi + 0x458]
mov ecx, dword [ecx]
mov eax, dword [ecx + eax*4]
jmp eax
mov eax, dword [esi + 0x214]
mov ecx, dword [eax]
mov ecx, dword [ecx + 8]
sub esp, 4
mov dword [esp], eax
call ecx
mov eax, dword [esi + 0x4c8]
mov eax, dword [eax]
mov ecx, dword [esi + 0x4e0]
mov ecx, dword [ecx]
mov eax, dword [ecx + eax*4]
jmp eax
call fcn.0035e190
sub esp, 4
mov dword [esp], ebx
mov eax, dword [0x398220]
call eax
mov edx, dword [esi + 0x178]
mov ecx, dword [esi + 0x4ec]
mov dword [ecx], 0
mov eax, dword [edi]
mov ecx, dword [ecx]
mov eax, dword [eax + ecx*4]
jmp eax
lea eax, [esi + 0x218]
sub esp, 4
mov dword [esp], eax
nop
call 0x74983eae
lea eax, [esi + 0x250]
sub esp, 4
mov dword [esp], eax
nop
call 0x74983ed5
mov edx, dword [esi + 0x60]
mov cl, byte [esi + 0x24]
mov byte [esi + 0x1dc], cl
mov byte [esi + 0x28], 0x71
mov byte [esi + 0x29], 0x39
mov byte [esi + 0x2a], 0xac
mov byte [esi + 0x2b], 0x3f
mov byte [esi + 0x2c], 0xab
mov byte [esi + 0x2d], 0x3d
mov byte [esi + 0x2e], 0xb6
mov byte [esi + 0x2f], 0x23
mov byte [esi + 0x30], 0x81
mov byte [esi + 0x31], 0x21
mov byte [esi + 0x32], 0x8a
mov byte [esi + 0x33], 0x27
mov byte [esi + 0x34], 0x88
mov byte [esi + 0x35], 0x25
mov byte [esi + 0x36], 0x6e
mov byte [esi + 0x37], 0x2b
mov byte [esi + 0x38], 0x89
mov byte [esi + 0x39], 0x29
mov byte [esi + 0x3a], 0xba
mov byte [esi + 0x3b], 0x2f
mov byte [esi + 0x3c], 0x89
mov byte [esi + 0x3d], 0x2d
mov byte [esi + 0x3e], 0x12
mov byte [esi + 0x3f], 0x13
mov ecx, 0x18
mov byte [esi + ecx + 0x28], 0
add ecx, 1
cmp ecx, 0x1c
jne 0x383681
xor ecx, ecx
cmp ecx, 0x1c
jae 0x3836d2
movzx edi, byte [esi + ecx + 0x28]
mov dword [esi + 0x29c], edx
mov edx, 0x75
sub edx, ecx
or edx, edi
mov ebx, 0x75
sub ebx, ecx
mov eax, 0x75
sub eax, ecx
or ebx, eax
and ebx, edi
xor edx, 0xffffffff
or ebx, edx
mov edx, dword [esi + 0x29c]
add bl, 0x4e
mov byte [esi + ecx + 0x28], bl
add ecx, 1
jmp 0x383690
mov eax, dword [edx]
mov ecx, dword [eax + 0x10]
sub esp, 0x18
lea eax, [esi + 0x250]
mov dword [esp + 0xc], eax
lea eax, [esi + 0x28]
mov dword [esp + 4], eax
mov dword [esp], edx
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 8], 0
call ecx
test eax, eax
setns al
mov cx, word [esi + 0x250]
sub cx, 8
sete cl
and al, cl
mov edx, dword [esi + 0x438]
mov dword [edx], 1
mov ecx, dword [esi + 0x444]
mov ecx, dword [ecx]
mov edx, dword [edx]
mov ecx, dword [ecx + edx*4]
mov ebx, dword [esi + 0x124]
jmp ecx
call fcn.0035e190
mov eax, ebx
add eax, 8
mov edx, dword [esi + 0x4d0]
mov dword [edx], 0
mov ecx, dword [esi + 0x4e4]
mov ecx, dword [ecx]
mov edx, dword [edx]
mov ecx, dword [ecx + edx*4]
jmp ecx
jns 0x3837bf
mov esi, 0x3ab3f6cb
cld
mov eax, dword [esi + 0x440]
mov eax, dword [eax]
mov ecx, dword [esi + 0x448]
mov ecx, dword [ecx]
mov eax, dword [ecx + eax*4]
jmp eax
call fcn.0035e190
mov ecx, dword [esi + 0x334]
mov dword [ecx], 1
mov eax, dword [esi + 0x33c]
mov eax, dword [eax]
mov ecx, dword [ecx]
mov eax, dword [eax + ecx*4]
jmp eax
mov al, byte [esi + 0x160]
mov byte [esi + 0x190], al
mov byte [esi + 0x164], 0x37
mov byte [esi + 0x165], 0xe1
mov byte [esi + 0x166], 0x33
add byte [ebx], dh
mov byte [esi + 0x167], 0xe3
mov byte [esi + 0x168], 0x38
mov byte [esi + 0x169], 0xe5
mov byte [esi + 0x16a], 0xe6
mov byte [esi + 0x16b], 0xe7
mov eax, 8
mov byte [esi + eax + 0x164], 0
add eax, 1
cmp eax, 0xb
jne 0x3837e9
xor eax, eax
cmp eax, 0xb
jae 0x38381d
mov cl, byte [esi + eax + 0x164]
mov dl, al
add dl, 0xa8
xor dl, cl
add dl, 0xb8
mov byte [esi + eax + 0x164], dl
add eax, 1
jmp 0x3837fb
lea eax, [esi + 0x164]
sub esp, 4
mov dword [esp], eax
nop
call 0x74984642
mov dword [esi + 0x208], eax
mov al, byte [esi + 0x15c]
mov byte [esi + 0x194], al
mov byte [esi + 0xdc], 0xf3
mov byte [esi + 0xdd], 0x41
mov byte [esi + 0xde], 7
mov byte [esi + 0xdf], 0x43
mov byte [esi + 0xe0], 8
mov byte [esi + 0xe1], 0x45
mov byte [esi + 0xe2], 3
mov byte [esi + 0xe3], 0x47
mov byte [esi + 0xe4], 0xb
mov byte [esi + 0xe5], 0x49
mov byte [esi + 0xe6], 0xfe
mov byte [esi + 0xe7], 0x4b
mov byte [esi + 0xe8], 0x2c
mov byte [esi + 0xe9], 0x4d
mov byte [esi + 0xea], 0x24
mov byte [esi + 0xeb], 0x4f
mov byte [esi + 0xec], 0xd0
mov byte [esi + 0xed], 0xb1
mov byte [esi + 0xee], 0xf4
mov byte [esi + 0xef], 0xb3
mov byte [esi + 0xf0], 6
mov byte [esi + 0xf1], 0xb5
mov byte [esi + 0xf2], 0xf9
mov byte [esi + 0xf3], 0xb7
mov byte [esi + 0xf4], 0xf5
mov byte [esi + 0xf5], 0xb9
mov byte [esi + 0xf6], 0xda
mov byte [esi + 0xf7], 0xbb
mov byte [esi + 0xf8], 0xb
mov byte [esi + 0xf9], 0xbd
mov byte [esi + 0xfa], 0x17
mov byte [esi + 0xfb], 0xbf
mov byte [esi + 0xfc], 0xe
mov byte [esi + 0xfd], 0xa1
mov byte [esi + 0xfe], 0xf1
mov byte [esi + 0xff], 0xa3
mov byte [esi + 0x100], 0xf6
mov byte [esi + 0x101], 0xa5
mov byte [esi + 0x102], 0x19
mov byte [esi + 0x103], 0xa7
mov byte [esi + 0x104], 0xe7
mov byte [esi + 0x105], 0xa9
mov byte [esi + 0x106], 0x3a
mov byte [esi + 0x107], 0xab
mov byte [esi + 0x108], 9
mov byte [esi + 0x109], 0xad
mov byte [esi + 0x10a], 0x3c
mov byte [esi + 0x10b], 0xaf
mov byte [esi + 0x10c], 0x31
mov byte [esi + 0x10d], 0x91
mov byte [esi + 0x10e], 6
mov byte [esi + 0x10f], 0x93
mov byte [esi + 0x110], 0x3d
mov byte [esi + 0x111], 0x95
mov byte [esi + 0x112], 0x38
mov byte [esi + 0x113], 0x97
mov byte [esi + 0x114], 0x3f
mov byte [esi + 0x115], 0x99
mov byte [esi + 0x116], 0x29
mov byte [esi + 0x117], 0x9b
mov byte [esi + 0x118], 5
mov byte [esi + 0x119], 0x9d
mov byte [esi + 0x11a], 0xd
mov byte [esi + 0x11b], 0x9f
mov byte [esi + 0x11c], 0x14
mov byte [esi + 0x11d], 0x81
mov byte [esi + 0x11e], 0x27
mov byte [esi + 0x11f], 0x83
mov byte [esi + 0x120], 0x29
mov byte [esi + 0x121], 0x85
mov byte [esi + 0x122], 0x86
mov byte [esi + 0x123], 0x87
xor eax, eax
mov dword [esi + 0x124], ebx
cmp eax, 0x48
jae 0x383a96
movzx edi, byte [esi + eax + 0xdc]
mov edx, eax
add edx, 0x70c99b70
mov ecx, 0x8f
sub ecx, eax
mov ebx, 0x8f
sub ebx, eax
and ecx, ebx
mov ebx, dword [esi + 0x124]
or edx, edi
xor edi, 0xffffffff
or ecx, edi
and ecx, edx
mov edx, ecx
shl edx, 1
and edx, 0x9e
xor ecx, 0xcf
add ecx, edx
add cl, 1
mov byte [esi + eax + 0xdc], cl
add eax, 1
jmp 0x383a41
sub esp, 4
lea eax, [esi + 0xdc]
mov dword [esp], eax
mov eax, dword [0x39821c]
call eax
mov edi, eax
mov eax, dword [esi + 0x170]
mov ecx, dword [eax]
mov ecx, dword [ecx + 0x50]
sub esp, 0x18
lea edx, [esi + 0x214]
mov dword [esp + 0x14], edx
mov dword [esp + 8], edi
mov edx, dword [esi + 0x208]
mov dword [esp + 4], edx
mov dword [esp], eax
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x30
call ecx
not eax
shr eax, 0x1f
mov ecx, dword [esi + 0x2e8]
mov dword [ecx], eax
mov eax, dword [esi + 0x2f4]
mov eax, dword [eax]
mov ecx, dword [ecx]
mov eax, dword [eax + ecx*4]
jmp eax
call fcn.0035e190
mov ecx, dword [esi + 0x508]
mov dword [ecx], 1
mov eax, dword [esi + 0x51c]
mov eax, dword [eax]
mov ecx, dword [ecx]
mov eax, dword [eax + ecx*4]
jmp eax
movsx ecx, word [esi + 0x560]
mov edx, 0x88888889
mov eax, ecx
imul edx
add edx, ecx
mov eax, edx
shr eax, 0x1f
shr edx, 5
add edx, eax
mov eax, dword [esi + 0x45c]
mov word [eax], dx
mov eax, dword [esi + 0x41c]
mov eax, dword [eax]
mov ecx, dword [esi + 0x428]
mov ecx, dword [ecx]
mov eax, dword [ecx + eax*4]
jmp eax
sub esp, 4
mov dword [esp], edi
mov eax, dword [0x398220]
call eax
mov eax, dword [esi + 0x488]
mov eax, dword [eax]
mov ecx, dword [esi + 0x4b0]
mov ecx, dword [ecx]
mov eax, dword [ecx + eax*4]
jmp eax
sub esp, 4
lea eax, [esi + 0x568]
mov dword [esp], eax
mov eax, dword [0x398224]
call eax
sub esp, 4
lea eax, [esi + 0x218]
mov dword [esp], eax
mov eax, dword [0x398228]
call eax
mov eax, dword [esi + 0x350]
mov eax, dword [eax]
mov ecx, dword [esi + 0x358]
mov ecx, dword [ecx]
mov eax, dword [ecx + eax*4]
jmp eax
mov ecx, dword [esi + 0x364]
mov ecx, dword [ecx]
mov edx, dword [esi + 0x378]
mov edx, dword [edx]
mov ecx, dword [edx + ecx*4]
jmp ecx
mov eax, dword [esi + 0x338]
mov eax, dword [eax]
mov ecx, dword [esi + 0x344]
mov ecx, dword [ecx]
mov eax, dword [ecx + eax*4]
jmp eax
sub esp, 0x24
lea edx, [esi + 0x170]
mov dword [esp + 0x20], edx
mov dword [esp + 4], ebx
mov dword [esp], ecx
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
call eax
mov ecx, dword [esi + 0x2c8]
mov ecx, dword [ecx]
mov edx, dword [esi + 0x2d0]
mov edx, dword [edx]
mov ecx, dword [edx + ecx*4]
jmp ecx
lea eax, [esi + 0x218]
sub esp, 4
mov dword [esp], eax
nop
call 0x74983eae
lea eax, [esi + 0x558]
sub esp, 4
mov dword [esp], eax
nop
call 0x74983ed5
mov edx, dword [esi + 0x60]
mov al, byte [esi + 0x44]
mov byte [esi + 0x1d4], al
mov byte [esi + 4], 0x27
mov byte [esi + 5], 0x99
mov byte [esi + 6], 0x1b
mov byte [esi + 7], 0x97
mov byte [esi + 8], 0x1a
mov byte [esi + 9], 0x95
mov byte [esi + 0xa], 0x1c
mov byte [esi + 0xb], 0x93
mov byte [esi + 0xc], 0xd
mov byte [esi + 0xd], 0x91
mov byte [esi + 0xe], 0x1c
mov byte [esi + 0xf], 0x8f
mov byte [esi + 0x10], 0
mov byte [esi + 0x11], 0x8d
mov byte [esi + 0x12], 0x26
mov byte [esi + 0x13], 0x8b
mov byte [esi + 0x14], 0x11
mov byte [esi + 0x15], 0x89
mov byte [esi + 0x16], 0x13
mov byte [esi + 0x17], 0x87
mov byte [esi + 0x18], 0x19
mov byte [esi + 0x19], 0x85
mov byte [esi + 0x1a], 0x24
mov byte [esi + 0x1b], 0x83
mov byte [esi + 0x1c], 0x13
mov byte [esi + 0x1d], 0x81
mov byte [esi + 0x1e], 0xec
mov byte [esi + 0x1f], 0x7f
mov byte [esi + 0x20], 0xe1
mov byte [esi + 0x21], 0x7d
mov byte [esi + 0x22], 0x7a
mov byte [esi + 0x23], 0x7b
xor edi, edi
cmp edi, 0x20
jae 0x383d54
movzx ecx, byte [esi + edi + 4]
mov dword [esi + 0x1f8], ecx
mov eax, edi
xor eax, 0x8c5f4f1a
mov dword [esi + 0x2a4], edx
mov edx, edi
shl edx, 1
and edx, 0xe74161ca
sub edx, eax
mov eax, ecx
xor eax, 0xffffffff
mov ecx, edx
or ecx, eax
mov ebx, dword [esi + 0x1f8]
sub ebx, edx
add ebx, ecx
mov eax, edx
mov ecx, dword [esi + 0x1f8]
or eax, ecx
xor edx, ecx
add edx, ecx
xor edx, 0xffffffff
add eax, edx
mov edx, dword [esi + 0x2a4]
and ebx, eax
mov al, 0x81
sub al, bl
mov byte [esi + edi + 4], al
add edi, 1
jmp 0x383cf0
mov eax, dword [edx]
mov ecx, dword [eax + 0x10]
sub esp, 0x18
lea eax, [esi + 0x558]
mov dword [esp + 0xc], eax
lea eax, [esi + 4]
mov dword [esp + 4], eax
mov dword [esp], edx
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 8], 0
call ecx
test eax, eax
setns al
mov cx, word [esi + 0x558]
sub cx, 2
sete cl
and al, cl
mov edx, dword [esi + 0x410]
mov dword [edx], 1
mov ecx, dword [esi + 0x420]
mov ecx, dword [ecx]
mov edx, dword [edx]
mov ecx, dword [ecx + edx*4]
jmp ecx
mov eax, dword [esi + 0x170]
mov ecx, dword [eax]
mov ecx, dword [ecx + 8]
sub esp, 4
mov dword [esp], eax
call ecx
mov eax, dword [esi + 0x49c]
mov eax, dword [eax]
mov ecx, dword [esi + 0x4c0]
mov ecx, dword [ecx]
mov eax, dword [ecx + eax*4]
jmp eax
mov eax, dword [esi + 0x128]
cmp dword [eax], 0
setne al
and al, 1
movzx eax, al
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
sub esp, 4
mov eax, dword [esi + 0x84]
mov dword [esp], eax
call fcn.0035c890
add esp, 4
mov eax, dword [esi + 0x3f0]
mov eax, dword [eax]
mov ecx, dword [esi + 0x3fc]
mov ecx, dword [ecx]
mov eax, dword [ecx + eax*4]
jmp eax
mov eax, dword [esi + 0x258]
sub esp, 4
mov dword [esp], eax
call fcn.003821d0
add esp, 4
mov edi, eax
add edi, 1
sub esp, 4
mov dword [esp], edi
call fcn.0035c880
add esp, 4
mov ecx, dword [esi + 0x258]
sub esp, 0xc
mov dword [esp], eax
mov dword [esp + 4], edi
mov edi, eax
mov dword [esp + 8], ecx
call fcn.0035d2b0
add esp, 0xc
mov eax, edi
add eax, 6
sub esp, 0xc
mov ecx, dword [esi + 0x54c]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 2
call fcn.00388c80
add esp, 0xc
mov cl, byte [esi + 0x13c]
mov byte [esi + 0x1e0], cl
mov byte [esi + 0x248], 0x7e
mov ecx, 1
mov byte [esi + ecx + 0x248], 0
add ecx, 1
cmp ecx, 8
jne 0x383ea6
xor ecx, ecx
mov dword [esi + 0x8c], edi
cmp ecx, 8
jae 0x383efe
movzx edx, byte [esi + ecx + 0x248]
mov edi, ecx
add edi, 0x496665b8
xor edi, edx
mov edx, edi
and edx, 0x67
mov ebx, edi
and ebx, 0x67
xor ebx, 0xffffffff
add edi, 0x68
add edi, ebx
add edx, edi
mov edi, dword [esi + 0x8c]
add dl, 1
mov byte [esi + ecx + 0x248], dl
add ecx, 1
jmp 0x383ebe
mov cl, byte [esi + 0x248]
mov edx, eax
add edx, 1
mov byte [eax], cl
mov eax, edi
add eax, 4
sub esp, 0xc
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], 2
call fcn.00388c80
add esp, 0xc
mov dword [esi + 0x298], eax
mov al, byte [esi + 0x138]
mov byte [esi + 0x1e4], al
mov byte [esi + 0x240], 0xda
mov eax, 1
mov byte [esi + eax + 0x240], 0
add eax, 1
cmp eax, 7
jne 0x383f48
xor ebx, ebx
cmp ebx, 7
jae 0x383fde
movzx ecx, byte [esi + ebx + 0x240]
mov dword [esi + 0x278], ecx
mov eax, 0x81
sub eax, ebx
or eax, ecx
mov dword [esi + 0x280], eax
mov edi, 0x7a0a0681
sub edi, ebx
mov ecx, 0x7a0a0681
sub ecx, ebx
mov eax, 0x7a0a0681
sub eax, ebx
or ecx, eax
mov eax, ecx
xor eax, 0xffffffff
mov edx, edi
and edx, eax
mov eax, edi
xor eax, ecx
add edi, eax
sub edi, edx
and edi, dword [esi + 0x278]
mov eax, edi
xor eax, 0xffffffff
shl eax, 1
add eax, edi
mov edi, dword [esi + 0x8c]
mov ecx, eax
add ecx, 1
add eax, 1
or ecx, eax
mov edx, dword [esi + 0x280]
and edx, ecx
mov al, 0x89
sub al, dl
mov byte [esi + ebx + 0x240], al
add ebx, 1
jmp 0x383f5a
mov al, byte [esi + 0x240]
mov edx, dword [esi + 0x298]
mov ecx, edx
add ecx, 1
mov byte [edx], al
sub esp, 0xc
mov dword [esp], ecx
mov dword [esp + 4], edi
mov dword [esp + 8], 4
call fcn.00388c80
add esp, 0xc
mov cl, byte [esi + 0x134]
mov byte [esi + 0x1e8], cl
mov byte [esi + 0x238], 0x84
mov ecx, 1
mov byte [esi + ecx + 0x238], 0
add ecx, 1
cmp ecx, 8
jne 0x384023
xor ecx, ecx
mov ebx, dword [esi + 0x98]
cmp ecx, 8
jae 0x3840a3
movzx edi, byte [esi + ecx + 0x238]
mov ebx, ecx
xor ebx, 0x54a191a8
mov edx, ecx
or edx, 0xab5e6e57
and edx, ebx
mov ebx, ecx
or ebx, 0xab5e6e57
add edx, ebx
xor edx, edi
mov edi, edx
add edi, 0xe0446218
mov ebx, edi
shl ebx, 1
and ebx, 0x98
xor edi, 0x4c
add edi, ebx
mov ebx, dword [esi + 0x98]
and edx, 1
or edi, 1
add edi, 0xe8
add edx, edi
mov edi, dword [esi + 0x8c]
mov byte [esi + ecx + 0x238], dl
add ecx, 1
jmp 0x38403b
mov cl, byte [esi + 0x238]
mov edx, eax
add edx, 1
mov byte [eax], cl
mov eax, edi
add eax, 8
sub esp, 0xc
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], 2
call fcn.00388c80
add esp, 0xc
mov cl, byte [esi + 0x130]
mov byte [esi + 0x1ec], cl
mov byte [esi + 0x230], 0x6e
mov ecx, 1
mov byte [esi + ecx + 0x230], 0
add ecx, 1
cmp ecx, 7
jne 0x3840e7
xor ecx, ecx
cmp ecx, 7
jae 0x384135
mov bl, byte [esi + ecx + 0x230]
movzx edx, bl
mov edi, ecx
add edi, 0x39
and edi, edx
shl edi, 1
mov edx, ecx
sub edx, edi
mov edi, dword [esi + 0x8c]
add dl, 0xb9
add dl, bl
mov ebx, dword [esi + 0x98]
add dl, 0x63
mov byte [esi + ecx + 0x230], dl
add ecx, 1
jmp 0x3840f9
mov cl, byte [esi + 0x230]
mov edx, eax
add edx, 1
mov byte [eax], cl
mov eax, edi
add eax, 0xa
sub esp, 0xc
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], 2
call fcn.00388c80
add esp, 0xc
mov cl, byte [esi + 0x12c]
mov byte [esi + 0x1f0], cl
mov byte [esi + 0x228], 0xb6
mov ecx, 1
mov byte [esi + ecx + 0x228], 0
add ecx, 1
cmp ecx, 8
jne 0x384179
xor ecx, ecx
cmp ecx, 8
jae 0x3841c5
movzx edi, byte [esi + ecx + 0x228]
mov edx, ecx
add edx, 0x12142cd5
mov ebx, edx
and ebx, edi
shl ebx, 1
add edx, edi
mov edi, dword [esi + 0x8c]
sub edx, ebx
mov ebx, dword [esi + 0x98]
add dl, 0xd7
mov byte [esi + ecx + 0x228], dl
add ecx, 1
jmp 0x38418b
mov cl, byte [esi + 0x228]
mov edx, eax
inc edx
mov byte [eax], cl
mov eax, edi
add eax, 0xc
sub esp, 0xc
mov dword [esp + 4], eax
mov dword [esp], edx
mov dword [esp + 8], 2
call fcn.00388c80
add esp, 0xc
mov byte [eax], 0
mov ecx, dword [esi + 0x50c]
mov dword [ecx], 0
mov eax, dword [esi + 0x52c]
mov eax, dword [eax]
mov ecx, dword [ecx]
mov eax, dword [eax + ecx*4]
jmp eax
call fcn.0035e190
mov ecx, dword [esi + 0x3e8]
mov dword [ecx], 1
mov eax, dword [edi]
mov ecx, dword [ecx]
mov eax, dword [eax + ecx*4]
jmp eax
call fcn.0035e190
mov ecx, dword [esi + 0x30c]
mov dword [ecx], 0
mov eax, dword [esi + 0x314]
mov eax, dword [eax]
mov ecx, dword [ecx]
mov eax, dword [eax + ecx*4]
jmp eax
mov eax, dword [esi + 0x3a0]
mov eax, dword [eax]
mov ecx, dword [esi + 0x3a8]
mov ecx, dword [ecx]
mov eax, dword [ecx + eax*4]
jmp eax
call fcn.0035e190
mov ecx, dword [esi + 0x498]
mov dword [ecx], 0
mov eax, dword [esi + 0x4ac]
mov eax, dword [eax]
mov ecx, dword [ecx]
mov eax, dword [eax + ecx*4]
jmp eax
mov eax, dword [esi + 0x4f4]
mov eax, dword [eax]
mov ecx, dword [esi + 0x4fc]
mov ecx, dword [ecx]
mov eax, dword [ecx + eax*4]
mov edi, dword [esi + 0x204]
jmp eax
mov eax, dword [esi + 0x4b4]
mov eax, dword [eax]
mov ecx, dword [esi + 0x4d8]
mov ecx, dword [ecx]
mov eax, dword [ecx + eax*4]
jmp eax
not eax
shr eax, 0x1f
mov ecx, dword [esi + 0x2c4]
mov dword [ecx], eax
mov eax, dword [esi + 0x2cc]
mov eax, dword [eax]
mov ecx, dword [ecx]
mov eax, dword [eax + ecx*4]
jmp eax
movzx eax, al
and eax, 1
mov ecx, dword [esi + 0x434]
mov dword [ecx], eax
mov eax, dword [esi + 0x43c]
mov eax, dword [eax]
mov ecx, dword [ecx]
mov eax, dword [eax + ecx*4]
jmp eax
mov ecx, dword [esi + 0x3f4]
mov dword [ecx], 0
mov eax, dword [esi + 0x400]
mov eax, dword [eax]
mov ecx, dword [ecx]
mov eax, dword [eax + ecx*4]
mov edi, dword [esi + 0x3f8]
jmp eax
lea eax, [esi + 0x218]
sub esp, 4
mov dword [esp], eax
nop
call 0x74983eae
lea eax, [esi + 0x250]
sub esp, 4
mov dword [esp], eax
call 0x74983ed5
nop
mov eax, dword [esi + 0x60]
mov dword [esi + 0x2a0], eax
mov cl, byte [esi + 0x24]
mov byte [esi + 0x1d8], cl
mov byte [esi + 0x28], 0x71
mov byte [esi + 0x29], 0x39
mov byte [esi + 0x2a], 0xac
mov byte [esi + 0x2b], 0x3f
mov byte [esi + 0x2c], 0xab
mov byte [esi + 0x2d], 0x3d
mov byte [esi + 0x2e], 0xb6
mov byte [esi + 0x2f], 0x23
mov byte [esi + 0x30], 0x81
mov byte [esi + 0x31], 0x21
mov byte [esi + 0x32], 0x8a
mov byte [esi + 0x33], 0x27
mov byte [esi + 0x34], 0x88
mov byte [esi + 0x35], 0x25
mov byte [esi + 0x36], 0x6e
mov byte [esi + 0x37], 0x2b
mov byte [esi + 0x38], 0x89
mov byte [esi + 0x39], 0x29
mov byte [esi + 0x3a], 0xba
mov byte [esi + 0x3b], 0x2f
mov byte [esi + 0x3c], 0x89
mov byte [esi + 0x3d], 0x2d
mov byte [esi + 0x3e], 0x12
mov byte [esi + 0x3f], 0x13
mov ecx, 0x18
mov byte [esi + ecx + 0x28], 0
add ecx, 1
cmp ecx, 0x1c
jne 0x3843a1
xor ecx, ecx
cmp ecx, 0x1c
jae 0x3843e6
movzx edi, byte [esi + ecx + 0x28]
mov edx, 0x75
sub edx, ecx
or edx, edi
mov ebx, 0x75
sub ebx, ecx
mov eax, 0x75
sub eax, ecx
or ebx, eax
and ebx, edi
xor edx, 0xffffffff
or ebx, edx
add bl, 0x4e
mov byte [esi + ecx + 0x28], bl
add ecx, 1
jmp 0x3843b0
mov edx, dword [esi + 0x2a0]
mov eax, dword [edx]
mov ecx, dword [eax + 0x10]
sub esp, 0x18
lea eax, [esi + 0x250]
mov dword [esp + 0xc], eax
lea eax, [esi + 0x28]
mov dword [esp + 4], eax
mov dword [esp], edx
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 8], 0
call ecx
mov eax, dword [esi + 0x3d4]
mov eax, dword [eax]
mov ecx, dword [esi + 0x3e4]
mov ecx, dword [ecx]
mov eax, dword [ecx + eax*4]
jmp eax
mov ecx, dword [esi + 0x478]
mov ecx, dword [ecx]
mov edx, dword [esi + 0x47c]
mov edx, dword [edx]
mov ecx, dword [edx + ecx*4]
jmp ecx
mov eax, dword [esi + 0x4a0]
mov eax, dword [eax]
mov ecx, dword [esi + 0x4c4]
mov ecx, dword [ecx]
mov eax, dword [ecx + eax*4]
jmp eax
mov eax, dword [esi + 0x220]
sub esp, 4
mov dword [esp], eax
call fcn.003821d0
add esp, 4
mov edi, eax
add edi, 1
sub esp, 4
mov dword [esp], edi
call fcn.0035c880
add esp, 4
mov ebx, eax
mov eax, dword [esi + 0x220]
sub esp, 0xc
mov dword [esp], ebx
mov dword [esp + 4], edi
mov dword [esp + 8], eax
call fcn.0035d2b0
add esp, 0xc
mov dword [esi + 0x84], ebx
add ebx, 6
sub esp, 0xc
mov ecx, dword [esi + 0x20c]
mov dword [esp], ecx
mov dword [esp + 4], ebx
mov dword [esp + 8], 2
call fcn.00388c80
add esp, 0xc
mov cl, byte [esi + 0x58]
mov byte [esi + 0x1ac], cl
mov byte [esi + 0xbc], 0x1a
mov ecx, 1
mov byte [esi + ecx + 0xbc], 0
add ecx, 1
cmp ecx, 8
jne 0x3844e4
xor ecx, ecx
cmp ecx, 8
jae 0x38453c
movzx edx, byte [esi + ecx + 0xbc]
mov dword [esi + 0x264], edx
mov edi, ecx
add edi, 0x32
mov edx, 0xcd
sub edx, ecx
mov ebx, 0xcd
sub ebx, ecx
and edx, ebx
mov ebx, dword [esi + 0x264]
or edi, ebx
xor ebx, 0xffffffff
or edx, ebx
and edx, edi
add dl, 6
mov byte [esi + ecx + 0xbc], dl
add ecx, 1
jmp 0x3844f6
mov dl, byte [esi + 0xbc]
mov ecx, eax
add ecx, 1
mov byte [eax], dl
mov eax, dword [esi + 0x84]
add eax, 4
sub esp, 0xc
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 2
call fcn.00388c80
add esp, 0xc
mov cl, byte [esi + 0x54]
mov byte [esi + 0x1b4], cl
mov byte [esi + 0xb4], 0xa
mov ecx, 1
mov byte [esi + ecx + 0xb4], 0
add ecx, 1
cmp ecx, 8
jne 0x384581
xor ecx, ecx
cmp ecx, 8
jae 0x3845b5
mov dl, byte [esi + ecx + 0xb4]
mov dh, cl
add dh, 0xf6
xor dh, dl
add dh, 0x32
mov byte [esi + ecx + 0xb4], dh
add ecx, 1
jmp 0x384593
mov cl, byte [esi + 0xb4]
mov edx, eax
add edx, 1
mov byte [eax], cl
sub esp, 0xc
mov dword [esp], edx
mov eax, dword [esi + 0x84]
mov dword [esp + 4], eax
mov dword [esp + 8], 4
call fcn.00388c80
add esp, 0xc
mov cl, byte [esi + 0x50]
mov byte [esi + 0x1bc], cl
mov byte [esi + 0xac], 0xe8
mov ecx, 1
mov byte [esi + ecx + 0xac], 0
add ecx, 1
cmp ecx, 7
jne 0x3845f7
xor ecx, ecx
cmp ecx, 7
jae 0x384641
movzx edi, byte [esi + ecx + 0xac]
mov edx, ecx
add edx, 0xf085c3ce
xor edx, edi
mov edi, edx
shl edi, 1
and edi, 0xf2
xor edx, 0xf9
add edx, edi
add dl, 1
mov byte [esi + ecx + 0xac], dl
add ecx, 1
jmp 0x384609
mov cl, byte [esi + 0xac]
mov edx, eax
add edx, 1
mov byte [eax], cl
mov eax, dword [esi + 0x84]
add eax, 8
sub esp, 0xc
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], 2
call fcn.00388c80
add esp, 0xc
mov cl, byte [esi + 0x4c]
mov byte [esi + 0x1c4], cl
mov byte [esi + 0xa4], 0x2e
mov ecx, 1
mov byte [esi + ecx + 0xa4], 0
add ecx, 1
cmp ecx, 7
jne 0x384686
xor edi, edi
cmp edi, 7
jae 0x3846d2
mov bl, byte [esi + edi + 0xa4]
movzx ecx, bl
mov dword [esi + 0x260], ecx
mov ecx, edi
add ecx, 0xa6878de9
mov edx, ecx
and edx, dword [esi + 0x260]
shl edx, 1
sub ecx, edx
add cl, bl
add cl, 0x73
mov byte [esi + edi + 0xa4], cl
add edi, 1
jmp 0x384698
mov dl, byte [esi + 0xa4]
mov ecx, eax
add ecx, 1
mov byte [eax], dl
mov eax, dword [esi + 0x84]
add eax, 0xa
sub esp, 0xc
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 2
call fcn.00388c80
add esp, 0xc
mov cl, byte [esi + 0x48]
mov byte [esi + 0x1cc], cl
mov byte [esi + 0x9c], 0x2e
mov ecx, 1
mov byte [esi + ecx + 0x9c], 0
add ecx, 1
cmp ecx, 5
jne 0x384717
xor edi, edi
cmp edi, 5
jae 0x3847a6
movzx ebx, byte [esi + edi + 0x9c]
mov dword [esi + 0x270], ebx
mov ecx, edi
add ecx, 0xc582e129
mov dword [esi + 0x290], eax
mov edx, 0x3a7d1ed6
sub edx, edi
and edx, 0x5268c391
mov eax, ecx
and eax, 0xad973c6e
or edx, eax
xor edx, 0x6e
or edx, ebx
mov eax, edi
shl eax, 1
add eax, 0x53
mov ebx, ecx
sub ebx, eax
mov eax, 0xd6
sub eax, edi
and eax, 0x98
and ecx, 0x67
or eax, ecx
xor eax, 0x67
or ebx, eax
and ebx, dword [esi + 0x270]
xor edx, 0xffffffff
or ebx, edx
mov eax, dword [esi + 0x290]
add bl, 0x33
mov byte [esi + edi + 0x9c], bl
add edi, 1
jmp 0x384729
mov dl, byte [esi + 0x9c]
mov ecx, eax
inc ecx
mov byte [eax], dl
mov eax, dword [esi + 0x84]
add eax, 0xc
sub esp, 0xc
mov dword [esp + 4], eax
mov dword [esp], ecx
mov dword [esp + 8], 2
call fcn.00388c80
add esp, 0xc
mov byte [eax], 0
mov ecx, dword [esi + 0x404]
mov dword [ecx], 1
mov eax, dword [esi + 0x408]
mov eax, dword [eax]
mov ecx, dword [ecx]
mov eax, dword [eax + ecx*4]
jmp eax
mov eax, dword [esi + 0x504]
mov eax, dword [eax]
mov ecx, dword [esi + 0x524]
mov ecx, dword [ecx]
mov eax, dword [ecx + eax*4]
mov ebx, dword [esi + 0x124]
jmp eax
add eax, 0x10
mov ecx, dword [esi + 0x394]
mov ecx, dword [ecx]
mov edx, dword [esi + 0x39c]
mov edx, dword [edx]
mov ecx, dword [edx + ecx*4]
jmp ecx
mov eax, dword [esi + 0x570]
sub esp, 4
mov dword [esp], eax
call fcn.003821d0
add esp, 4
mov dword [esi + 0x2ac], eax
mov ebx, eax
add ebx, 1
sub esp, 4
mov dword [esp], ebx
call fcn.0035c880
add esp, 4
mov ecx, dword [esi + 0x128]
mov dword [ecx], eax
mov ecx, dword [esi + 0x570]
sub esp, 0xc
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], ecx
call fcn.0035d2b0
add esp, 0xc
mov al, byte [esi + 0x140]
mov byte [esi + 0x19c], al
mov byte [esi + 0x90], 0x75
mov byte [esi + 0x91], 0x64
mov byte [esi + 0x92], 0x60
mov byte [esi + 0x93], 0x55
mov byte [esi + 0x94], 0x21
mov byte [esi + 0x95], 0x2a
mov byte [esi + 0x96], 0x27
mov byte [esi + 0x97], 0xb5
xor edx, edx
cmp edx, 8
jae 0x384932
movzx eax, byte [esi + edx + 0x90]
mov dword [esi + 0x27c], eax
mov ecx, edx
and ecx, 0x6d9db6dd
mov edi, edx
and edi, 0x92624922
mov ebx, edx
xor ebx, 0x6d9db6dd
add ebx, edx
sub ebx, edi
mov edi, ecx
and edi, ebx
shl edi, 1
xor ecx, ebx
add ecx, edi
mov edi, ecx
shl edi, 1
xor edi, 0xffffffff
mov eax, ecx
add eax, edi
mov ebx, ecx
and ebx, 0xd7
and eax, 0x28
or ebx, eax
mov eax, dword [esi + 0x27c]
xor ebx, eax
xor ebx, 0xd7
xor eax, 0xffffffff
or ecx, eax
and ebx, ecx
mov al, 0xae
sub al, bl
mov byte [esi + edx + 0x90], al
add edx, 1
jmp 0x3848bc
mov edi, dword [esi + 0x128]
mov eax, dword [edi]
sub esp, 8
lea ecx, [esi + 0x90]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00374be0
add esp, 8
mov ebx, dword [edi]
mov edi, ebx
sub edi, eax
mov ecx, dword [esi + 0x2ac]
lea edx, [ecx + edi]
lea ecx, [ecx + edi + 1]
mov dword [esi], ecx
seta cl
mov dword [esi + 0x268], edx
mov dword [esi + 0x1fc], eax
lea edi, [eax + edx + 1]
mov edx, ebx
sub edi, edx
seta ch
and cl, ch
test cl, 1
jne 0x3849e6
mov ecx, dword [esi]
shr ecx, 2
mov edi, edx
mov ebx, dword [esi + 0x1fc]
mov eax, ebx
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov eax, dword [esi]
and eax, 0xfffffffc
add edx, eax
add ebx, eax
mov ecx, dword [esi]
shr ecx, 1
and ecx, 1
mov edi, edx
mov eax, ebx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, dword [esi]
and eax, 2
add edx, eax
add ebx, eax
mov eax, dword [esi]
and eax, 1
mov edi, ebx
cmp eax, 0
je 0x384a1c
mov ecx, eax
xor ecx, 0xffffffff
shl eax, 1
add eax, ecx
mov ecx, edi
add ecx, 1
mov bl, byte [edi]
mov edi, edx
add edi, 1
mov byte [edx], bl
mov edx, edi
mov edi, ecx
jmp 0x3849c4
mov ecx, dword [esi + 0x268]
add edx, ecx
mov eax, dword [esi + 0x1fc]
add eax, ecx
mov ecx, eax
mov eax, dword [esi]
cmp eax, 0
je 0x384a1a
add eax, 0xffffffff
mov dword [esi], eax
mov eax, ecx
add eax, 0xffffffff
mov cl, byte [ecx]
mov edi, edx
add edi, 0xffffffff
mov byte [edx], cl
mov edx, edi
mov ecx, eax
mov eax, dword [esi]
jmp 0x3849fa
jmp 0x384a1e
jmp 0x384a1e
mov eax, dword [esi + 0x340]
mov eax, dword [eax]
mov ecx, dword [esi + 0x34c]
mov ecx, dword [ecx]
mov eax, dword [ecx + eax*4]
jmp eax
movsd dword es:[edi], dword es:[esi]
test dword [edi], esi
mov eax, dword [esi + 0x3b4]
mov eax, dword [eax]
mov ecx, dword [esi + 0x3b8]
mov ecx, dword [ecx]
mov eax, dword [ecx + eax*4]
jmp eax
call fcn.0035e190
mov ecx, dword [esi + 0x418]
mov dword [ecx], 1
mov eax, dword [esi + 0x424]
mov eax, dword [eax]
mov ecx, dword [ecx]
mov eax, dword [eax + ecx*4]
jmp eax
mov eax, dword [eax]
sub esp, 0x18
lea ecx, [esi + 0x218]
mov dword [esp + 0xc], ecx
lea ecx, [esi + 0x64]
mov dword [esp + 4], ecx
mov ecx, dword [esi + 0x200]
mov dword [esp], ecx
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 8], 0
call eax
test eax, eax
setns al
mov cx, word [esi + 0x218]
mov edx, dword [esi + 0x36c]
mov edx, dword [edx]
mov edi, dword [esi + 0x384]
mov edi, dword [edi]
mov edx, dword [edi + edx*4]
jmp edx
mov eax, dword [esi + 0x170]
sub esp, 0x20
mov dword [esp], eax
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 3
mov dword [esp + 0x10], 3
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0xa
mov eax, dword [0x398210]
call eax
not eax
shr eax, 0x1f
mov ecx, dword [esi + 0x2d4]
mov dword [ecx], eax
mov eax, dword [esi + 0x2d8]
mov eax, dword [eax]
mov ecx, dword [ecx]
mov eax, dword [eax + ecx*4]
jmp eax
mov ecx, dword [esi + 0x37c]
mov ecx, dword [ecx]
mov edx, dword [esi + 0x388]
mov edx, dword [edx]
mov ecx, dword [edx + ecx*4]
jmp ecx
mov ecx, dword [ecx]
sub esp, 4
mov dword [esp], eax
call ecx
mov eax, dword [esi + 0x514]
mov eax, dword [eax]
mov ecx, dword [esi + 0x538]
mov ecx, dword [ecx]
mov eax, dword [ecx + eax*4]
mov edi, dword [esi + 0x534]
jmp eax
mov eax, dword [esi + 0x4dc]
mov eax, dword [eax]
mov ecx, dword [esi + 0x4f0]
mov ecx, dword [ecx]
mov eax, dword [ecx + eax*4]
jmp eax
mov ecx, dword [ecx]
sub esp, 0x14
lea edx, [esi + 0x210]
mov dword [esp + 0x10], edx
lea edx, [esi + 0x60]
mov dword [esp + 0xc], edx
mov dword [esp], eax
mov dword [esp + 8], 1
mov dword [esp + 4], 0xffffffff
call ecx
test eax, eax
setns cl
sub eax, 1
setne al
mov edx, dword [esi + 0x2f8]
mov edx, dword [edx]
mov edi, dword [esi + 0x304]
mov edi, dword [edi]
mov edx, dword [edi + edx*4]
jmp edx
mov bl, 0xad
loop 0x384bfc
mov eax, dword [esi + 0x220]
sub esp, 4
mov dword [esp], eax
call fcn.003821d0
add esp, 4
mov edi, eax
sub edi, 0xffffffff
sub esp, 4
mov dword [esp], edi
call fcn.0035c880
add esp, 4
mov ebx, eax
mov eax, dword [esi + 0x220]
sub esp, 0xc
mov dword [esp], ebx
or al, 0x89
sbb al, 0x24
mov dword [esp + 4], edi
mov dword [esp + 8], eax
call fcn.0035d2b0
add esp, 0xc
mov dword [esi + 0x88], ebx
add ebx, 6
sub esp, 0xc
mov ecx, dword [esi + 0x20c]
mov dword [esp], ecx
mov dword [esp + 4], ebx
mov dword [esp + 8], 2
call fcn.00388c80
add esp, 0xc
mov dword [esi + 0x288], eax
mov cl, byte [esi + 0x58]
mov byte [esi + 0x1a8], cl
mov byte [esi + 0xbc], 0x1a
mov ecx, 1
mov byte [esi + ecx + 0xbc], 0
add ecx, 1
cmp ecx, 8
jne 0x384c54
xor ecx, ecx
cmp ecx, 8
jae 0x384ca0
movzx eax, byte [esi + ecx + 0xbc]
mov edi, ecx
add edi, 0x32
mov edx, 0xcd
sub edx, ecx
mov ebx, 0xcd
sub ebx, ecx
and edx, ebx
or edi, eax
xor eax, 0xffffffff
or edx, eax
and edx, edi
add dl, 6
mov byte [esi + ecx + 0xbc], dl
add ecx, 1
jmp 0x384c66
mov al, byte [esi + 0xbc]
mov edx, dword [esi + 0x288]
mov ecx, edx
add ecx, 1
mov byte [edx], al
mov eax, dword [esi + 0x88]
add eax, 4
sub esp, 0xc
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 2
call fcn.00388c80
add esp, 0xc
mov cl, byte [esi + 0x54]
mov byte [esi + 0x1b0], cl
mov byte [esi + 0xb4], 0xa
mov ecx, 1
mov byte [esi + ecx + 0xb4], 0
add ecx, 1
cmp ecx, 8
jne 0x384ceb
xor ecx, ecx
cmp ecx, 8
jae 0x384d1f
mov dl, byte [esi + ecx + 0xb4]
mov dh, cl
add dh, 0xf6
xor dh, dl
add dh, 0x32
mov byte [esi + ecx + 0xb4], dh
add ecx, 1
jmp 0x384cfd
mov cl, byte [esi + 0xb4]
mov edx, eax
add edx, 1
mov byte [eax], cl
sub esp, 0xc
mov dword [esp], edx
mov eax, dword [esi + 0x88]
mov dword [esp + 4], eax
mov dword [esp + 8], 4
call fcn.00388c80
add esp, 0xc
mov cl, byte [esi + 0x50]
mov byte [esi + 0x1b8], cl
mov byte [esi + 0xac], 0xe8
mov ecx, 1
mov byte [esi + ecx + 0xac], 0
add ecx, 1
cmp ecx, 7
jne 0x384d61
xor ecx, ecx
cmp ecx, 7
jae 0x384dab
movzx edi, byte [esi + ecx + 0xac]
mov edx, ecx
add edx, 0xf085c3ce
xor edx, edi
mov edi, edx
shl edi, 1
and edi, 0xf2
xor edx, 0xf9
add edx, edi
add dl, 1
mov byte [esi + ecx + 0xac], dl
add ecx, 1
jmp 0x384d73
mov cl, byte [esi + 0xac]
mov edx, eax
add edx, 1
mov byte [eax], cl
mov eax, dword [esi + 0x88]
add eax, 8
sub esp, 0xc
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], 2
call fcn.00388c80
add esp, 0xc
mov dword [esi + 0x284], eax
mov cl, byte [esi + 0x4c]
mov byte [esi + 0x1c0], cl
mov byte [esi + 0xa4], 0x2e
mov ecx, 1
mov byte [esi + ecx + 0xa4], 0
add ecx, 1
cmp ecx, 7
jne 0x384df6
xor edi, edi
cmp edi, 7
jae 0x384e38
mov bl, byte [esi + edi + 0xa4]
movzx eax, bl
mov ecx, edi
add ecx, 0xa6878de9
mov edx, ecx
and edx, eax
shl edx, 1
sub ecx, edx
add cl, bl
add cl, 0x73
mov byte [esi + edi + 0xa4], cl
add edi, 1
jmp 0x384e08
mov al, byte [esi + 0xa4]
mov edx, dword [esi + 0x284]
mov ecx, edx
add ecx, 1
mov byte [edx], al
mov eax, dword [esi + 0x88]
add eax, 0xa
sub esp, 0xc
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 2
call fcn.00388c80
add esp, 0xc
mov dword [esi + 0x294], eax
mov al, byte [esi + 0x48]
mov byte [esi + 0x1c8], al
mov byte [esi + 0x9c], 0x2e
mov eax, 1
mov byte [esi + eax + 0x9c], 0
add eax, 1
cmp eax, 5
jne 0x384e89
xor edi, edi
cmp edi, 5
jae 0x384f0c
movzx ebx, byte [esi + edi + 0x9c]
mov dword [esi + 0x274], ebx
mov ecx, edi
add ecx, 0xc582e129
mov edx, 0x3a7d1ed6
sub edx, edi
and edx, 0x5268c391
mov eax, ecx
and eax, 0xad973c6e
or edx, eax
xor edx, 0x6e
or edx, ebx
mov eax, edi
shl eax, 1
add eax, 0x53
mov ebx, ecx
sub ebx, eax
mov eax, 0xd6
sub eax, edi
and eax, 0x98
and ecx, 0x67
or eax, ecx
xor eax, 0x67
or ebx, eax
and ebx, dword [esi + 0x274]
xor edx, 0xffffffff
or ebx, edx
add bl, 0x33
mov byte [esi + edi + 0x9c], bl
add edi, 1
jmp 0x384e9b
mov al, byte [esi + 0x9c]
mov edx, dword [esi + 0x294]
mov ecx, edx
inc ecx
mov byte [edx], al
mov eax, dword [esi + 0x88]
add eax, 0xc
sub esp, 0xc
mov dword [esp + 4], eax
mov dword [esp], ecx
mov dword [esp + 8], 2
call fcn.00388c80
add esp, 0xc
mov byte [eax], 0
mov eax, dword [esi + 0x32c]
mov eax, dword [eax]
mov ecx, dword [esi + 0x330]
mov ecx, dword [ecx]
mov eax, dword [ecx + eax*4]
jmp eax
call fcn.0035e190
mov dword [edi], 1
mov eax, dword [esi + 0x544]
mov eax, dword [eax]
mov ecx, dword [edi]
mov eax, dword [eax + ecx*4]
jmp eax
mov eax, dword [esi + 0x4cc]
mov eax, dword [eax]
mov ecx, dword [esi + 0x4e8]
mov ecx, dword [ecx]
mov eax, dword [ecx + eax*4]
jmp eax
sub esp, 4
mov dword [esp], edi
call eax
mov eax, dword [esi + 0x468]
mov eax, dword [eax]
mov ecx, dword [esi + 0x470]
mov ecx, dword [ecx]
mov eax, dword [ecx + eax*4]
jmp eax
mov eax, dword [esi + 0x528]
mov eax, dword [eax]
mov ecx, dword [esi + 0x540]
mov ecx, dword [ecx]
mov eax, dword [ecx + eax*4]
jmp eax
mov ecx, dword [esi + 0x48c]
mov ecx, dword [ecx]
mov edx, dword [esi + 0x4b8]
mov edx, dword [edx]
mov ecx, dword [edx + ecx*4]
jmp ecx
mov dword [esi + 0x204], edi
mov dword [esi + 0x210], 0
mov eax, dword [esi + 0x214]
mov ecx, dword [eax]
add ecx, 0x10
mov edx, dword [esi + 0x2e4]
mov edx, dword [edx]
mov edi, dword [esi + 0x2f0]
mov edi, dword [edi]
mov edx, dword [edi + edx*4]
jmp edx
and cl, al
mov eax, dword [esi + 0x210]
test eax, eax
setne al
and cl, al
movzx eax, cl
mov ecx, dword [esi + 0x300]
mov dword [ecx], eax
mov eax, dword [esi + 0x308]
mov eax, dword [eax]
mov ecx, dword [ecx]
mov eax, dword [eax + ecx*4]
mov edi, dword [esi + 0x204]
jmp eax
call fcn.0035e190
mov ecx, dword [esi + 0x510]
mov dword [ecx], 1
mov eax, dword [esi + 0x530]
mov eax, dword [eax]
mov ecx, dword [ecx]
mov eax, dword [eax + ecx*4]
jmp eax
call fcn.0035e190
lea eax, [esp + 0x138]
mov dword [esp], eax
mov eax, dword [0x398224]
call eax
sub esp, 4
xor eax, eax
test edi, edi
sete cl
mov dword [esp + 0x1e4], 0
mov edx, dword [esp + 0x1e8]
mov esi, dword [esp + 0x1e4]
mov edx, dword [edx + esi*4]
jmp edx
mov dh, 0xe2
mov ecx, 0x24948dae
dec eax
add dword [eax], eax
add byte [ebx + 0x7c8d08c2], al
and al, 0x50
mov eax, edx
mov ecx, 1
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [esp + 0x50]
add eax, 4
add edx, 4
mov esi, edx
mov edi, eax
xor ecx, ecx
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
xor ecx, ecx
mov esi, ecx
add ecx, 0xffffffff
cmp esi, 0
je 0x3856bb
mov esi, edx
add esi, 1
mov edi, eax
add edi, 1
mov dl, byte [edx]
mov byte [eax], dl
mov eax, edi
mov edx, esi
jmp 0x38569d
mov al, byte [esp + 0x51]
mov ecx, dword [esp + 0x130]
mov byte [ecx], al
mov eax, dword [esp + 0x174]
mov ecx, dword [esp + 0x178]
mov eax, dword [ecx + eax*4]
jmp eax
call fcn.0035e190
mov dword [esp + 0x27c], 0
mov eax, dword [esp + 0x280]
mov ecx, dword [esp + 0x27c]
mov eax, dword [eax + ecx*4]
jmp eax
mov eax, dword [esp + 0x4c]
mov ecx, dword [eax]
mov ecx, dword [ecx + 8]
mov dword [esp], eax
call ecx
sub esp, 4
mov eax, dword [esp + 0x1cc]
mov ecx, dword [esp + 0x1d0]
mov ecx, dword [ecx + eax*4]
xor eax, eax
jmp ecx
call fcn.0035e190
mov dword [esp + 0x58], 0
mov eax, dword [esp + 0x80]
mov ecx, dword [eax]
mov ecx, dword [ecx + 0x10]
lea edx, [esp + 0x58]
mov dword [esp + 0x10], edx
lea edx, [esp + 0x4c]
mov dword [esp + 0xc], edx
mov dword [esp], eax
mov dword [esp + 8], 1
mov dword [esp + 4], 0xffffffff
call ecx
sub esp, 0x14
test eax, eax
sets cl
sub eax, 1
sete al
mov edx, dword [esp + 0x58]
test edx, edx
sete dl
or al, dl
or al, cl
mov dword [esp + 0x274], 1
mov ecx, dword [esp + 0x278]
mov edx, dword [esp + 0x274]
mov ecx, dword [ecx + edx*4]
jmp ecx
xor ecx, ecx
test eax, eax
sete cl
mov dword [esp + 0x244], ecx
mov ecx, dword [esp + 0x248]
mov edx, dword [esp + 0x244]
mov ecx, dword [ecx + edx*4]
jmp ecx
mov eax, edi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, dword [esp + 0x1c4]
mov edx, dword [esp + 0x1c8]
mov ecx, dword [edx + ecx*4]
jmp ecx
cmp dl, byte [ecx - 1]
int 0x5b
xor al, 0x99
jbe 0x38576d
test byte [eax + eax*2], ah
add dword [eax], eax
add byte [ecx - 0x1f17dbfc], cl
leave
invalid
call fcn.0035e190
mov dword [esp + 0x204], 1
mov eax, dword [esp + 0x208]
mov ecx, dword [esp + 0x204]
mov eax, dword [eax + ecx*4]
jmp eax
call fcn.0035e190
mov dword [esp + 0x1ec], 0
mov eax, dword [esp + 0x1f0]
mov ecx, dword [esp + 0x1ec]
mov eax, dword [eax + ecx*4]
jmp eax
mov eax, dword [esp + 0x1f4]
mov ecx, dword [esp + 0x1f8]
mov eax, dword [ecx + eax*4]
mov edi, dword [esp + 0x5c]
jmp eax
xor ecx, ecx
sub eax, 3
sete cl
mov dword [esp + 0x1bc], ecx
mov eax, dword [esp + 0x1c0]
mov ecx, dword [esp + 0x1bc]
mov eax, dword [eax + ecx*4]
jmp eax
mov al, byte [esp + 0x88]
mov byte [esp + 0xa8], al
mov byte [esp + 0x8c], 0x73
mov byte [esp + 0x8d], 0x89
mov byte [esp + 0x8e], 0x47
mov byte [esp + 0x8f], 0xb7
mov byte [esp + 0x90], 0x40
mov byte [esp + 0x91], 0xb5
mov byte [esp + 0x92], 0xb2
mov byte [esp + 0x93], 0xb3
mov eax, 8
mov byte [esp + eax + 0x8c], 0
add eax, 1
cmp eax, 0xb
jne 0x385909
mov dword [esp + 0x160], esi
xor eax, eax
cmp eax, 0xb
jae 0x385984
movzx edx, byte [esp + eax + 0x8c]
mov esi, eax
add esi, 0x3ed06ede
mov edi, esi
and edi, edx
shl edi, 1
mov ebx, esi
add ebx, edx
mov ecx, 0x412f9121
sub ecx, eax
sub ebx, edi
or ecx, ebx
shl ecx, 1
add ecx, 2
add ecx, esi
add ecx, edx
mov edx, ecx
add edx, 0xc5edd5a9
mov edi, edx
xor edi, 0x7e
mov esi, edx
or esi, 1
and esi, edi
shl esi, 1
and ecx, 1
and edx, 0xfe
or ecx, edx
add ecx, esi
mov byte [esp + eax + 0x8c], cl
add eax, 1
jmp 0x385922
lea eax, [esp + 0x8c]
mov dword [esp], eax
nop
call 0x74984642
sub esp, 4
mov dword [esp + 0x134], eax
mov al, byte [esp + 0x84]
mov byte [esp + 0xac], al
mov byte [esp + 0xbc], 0xb9
mov byte [esp + 0xbd], 0xf
mov byte [esp + 0xbe], 0xc9
mov byte [esp + 0xbf], 0xf1
mov byte [esp + 0xc0], 0x3c
mov byte [esp + 0xc1], 0xf3
mov byte [esp + 0xc2], 0x35
mov byte [esp + 0xc3], 0xf5
mov byte [esp + 0xc4], 0x31
mov byte [esp + 0xc5], 0xf7
mov byte [esp + 0xc6], 0x42
mov byte [esp + 0xc7], 0xf9
mov byte [esp + 0xc8], 0x18
mov byte [esp + 0xc9], 0xfb
mov byte [esp + 0xca], 0x10
mov byte [esp + 0xcb], 0xfd
mov byte [esp + 0xcc], 0x1c
mov byte [esp + 0xcd], 0xff
mov byte [esp + 0xce], 0x38
mov byte [esp + 0xcf], 0xe1
mov byte [esp + 0xd0], 0x52
mov byte [esp + 0xd1], 0xe3
mov byte [esp + 0xd2], 0x53
mov byte [esp + 0xd3], 0xe5
mov byte [esp + 0xd4], 0x2b
mov byte [esp + 0xd5], 0xe7
mov byte [esp + 0xd6], 6
mov byte [esp + 0xd7], 0xe9
mov byte [esp + 0xd8], 0x2b
mov byte [esp + 0xd9], 0xeb
mov byte [esp + 0xda], 0x44
mov byte [esp + 0xdb], 0xed
mov byte [esp + 0xdc], pe_nt_image_headers32
mov byte [esp + 0xdd], 0xef
mov byte [esp + 0xde], 0x45
mov byte [esp + 0xdf], 0xd1
mov byte [esp + 0xe0], 0x66
mov byte [esp + 0xe1], 0xd3
mov byte [esp + 0xe2], 0x79
mov byte [esp + 0xe3], 0xd5
mov byte [esp + 0xe4], 0x46
mov byte [esp + 0xe5], 0xd7
mov byte [esp + 0xe6], 0x41
mov byte [esp + 0xe7], 0xd9
mov byte [esp + 0xe8], 0x4d
mov byte [esp + 0xe9], 0xdb
mov byte [esp + 0xea], 0x6a
mov byte [esp + 0xeb], 0xdd
mov byte [esp + 0xec], 0x4e
mov byte [esp + 0xed], 0xdf
mov byte [esp + 0xee], 0x4f
mov byte [esp + 0xef], 0xc1
mov byte [esp + 0xf0], 0x64
mov byte [esp + 0xf1], 0xc3
mov byte [esp + 0xf2], 0x55
mov byte [esp + 0xf3], 0xc5
mov byte [esp + 0xf4], 0x61
mov byte [esp + 0xf5], 0xc7
mov byte [esp + 0xf6], 0x52
mov byte [esp + 0xf7], 0xc9
mov byte [esp + 0xf8], 0xc8
mov byte [esp + 0xf9], 0xcb
mov eax, 0x3e
mov byte [esp + eax + 0xbc], 0
add eax, 1
cmp eax, 0x43
jne 0x385ba1
xor eax, eax
cmp eax, 0x43
jae 0x385c0b
movzx edx, byte [esp + eax + 0xbc]
mov ecx, eax
add ecx, 0xd505c4fd
mov esi, ecx
and esi, edx
mov edi, esi
and edi, 2
xor edi, 2
mov ebx, esi
and ebx, 0xfd
imul ebx, edi
mov edi, esi
and edi, 2
or esi, 2
imul esi, edi
add esi, ebx
add ecx, edx
mov edx, ecx
sub edx, esi
shl ecx, 1
and ecx, 2
xor edx, 1
add edx, 0xe
add edx, ecx
mov byte [esp + eax + 0xbc], dl
add eax, 1
jmp 0x385bb3
lea eax, [esp + 0xbc]
mov dword [esp], eax
mov eax, dword [0x39821c]
call eax
sub esp, 4
mov ebx, eax
mov eax, dword [esp + 0x98]
mov ecx, dword [eax]
mov ecx, dword [ecx + 0x50]
lea edx, [esp + 0x80]
mov dword [esp + 0x14], edx
mov dword [esp + 8], ebx
mov edx, dword [esp + 0x134]
mov dword [esp + 4], edx
mov dword [esp], eax
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x30
call ecx
sub esp, 0x18
not eax
shr eax, 0x1f
mov dword [esp + 0x29c], eax
mov eax, dword [esp + 0x2a0]
mov ecx, dword [esp + 0x29c]
mov eax, dword [eax + ecx*4]
xor edi, edi
jmp eax
mov eax, dword [esp + 0x214]
mov ecx, dword [esp + 0x218]
mov eax, dword [ecx + eax*4]
jmp eax
mov eax, dword [esp + 0x254]
mov ecx, dword [esp + 0x258]
mov ecx, dword [ecx + eax*4]
mov eax, 3
jmp ecx
invalid
call fcn.0035e190
mov dword [esp + 0x264], 1
mov eax, dword [esp + 0x268]
mov ecx, dword [esp + 0x264]
mov eax, dword [eax + ecx*4]
jmp eax
call fcn.0035e190
mov eax, dword [esp + 0x140]
mov dword [esp], eax
call fcn.003821d0
mov edi, eax
inc edi
mov dword [esp], edi
call fcn.0035c880
mov dword [esi], eax
mov ecx, dword [esp + 0x140]
mov dword [esp + 8], ecx
mov dword [esp + 4], edi
mov dword [esp], eax
call fcn.0035d2b0
mov dword [esp + 0x1fc], 0
mov eax, dword [esp + 0x200]
mov ecx, dword [esp + 0x1fc]
mov eax, dword [eax + ecx*4]
jmp eax
mov eax, dword [esp + 0x98]
mov dword [esp], eax
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 3
mov dword [esp + 0x10], 3
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0xa
mov eax, dword [0x398210]
call eax
sub esp, 0x20
not eax
shr eax, 0x1f
mov dword [esp + 0x2a4], eax
mov eax, dword [esp + 0x2a8]
mov ecx, dword [esp + 0x2a4]
mov eax, dword [eax + ecx*4]
xor edi, edi
jmp eax
mov dword [esp], 0xc
call fcn.0035c880
mov dword [eax], 0
mov byte [eax + 4], 0
mov dword [eax + 8], 0
lea eax, [esp + 0x148]
mov dword [esp], eax
nop
call 0x74983ed5
sub esp, 4
mov edi, dword [esp + 0x4c]
mov cl, byte [esp + 0x28]
mov byte [esp + 0xb0], cl
mov byte [esp + 0x2c], 0xb4
mov byte [esp + 0x2d], 0x27
mov byte [esp + 0x2e], 0xb4
mov byte [esp + 0x2f], 0x21
mov byte [esp + 0x30], 0xb1
mov byte [esp + 0x31], 0x23
mov byte [esp + 0x32], 0xbe
mov byte [esp + 0x33], 0x5d
mov byte [esp + 0x34], 0xd3
mov byte [esp + 0x35], 0x5f
mov byte [esp + 0x36], 0xc3
mov byte [esp + 0x37], 0x59
mov byte [esp + 0x38], 0xd4
mov byte [esp + 0x39], 0x5b
mov byte [esp + 0x3a], 0x37
mov byte [esp + 0x3b], 0x55
mov byte [esp + 0x3c], 0xd8
mov byte [esp + 0x3d], 0x57
mov byte [esp + 0x3e], 0x35
mov byte [esp + 0x3f], 0x51
mov byte [esp + 0x40], 0xdc
mov byte [esp + 0x41], 0x53
mov byte [esp + 0x42], 0xcd
mov byte [esp + 0x43], 0x4d
mov byte [esp + 0x44], 0x4c
mov byte [esp + 0x45], 0x4f
mov ecx, 0x1a
mov byte [esp + ecx + 0x2c], 0
add ecx, 1
cmp ecx, 0x1f
jne 0x385eaa
xor ecx, ecx
cmp ecx, 0x1f
jae 0x385ee9
movzx edx, byte [esp + ecx + 0x2c]
mov esi, ecx
add esi, 0x79508b39
xor esi, edx
mov edx, esi
xor edx, 0x1d
or esi, 0xa16d47e2
mov eax, esi
and eax, edx
add eax, esi
add al, 1
mov byte [esp + ecx + 0x2c], al
add ecx, 1
jmp 0x385eb9
mov eax, dword [edi]
mov eax, dword [eax + 0x10]
lea ecx, [esp + 0x148]
mov dword [esp + 0xc], ecx
lea ecx, [esp + 0x2c]
mov dword [esp + 4], ecx
mov dword [esp], edi
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 8], 0
call eax
sub esp, 0x18
mov eax, dword [esp + 0x17c]
mov ecx, dword [esp + 0x180]
mov eax, dword [ecx + eax*4]
jmp eax
mov al, byte [esp + 0x9c]
mov byte [esp + 0xa4], al
mov byte [esp + 0x100], 0x7e
mov byte [esp + 0x101], 0x8f
mov byte [esp + 0x102], 0x7f
mov byte [esp + 0x103], 0xb1
mov byte [esp + 0x104], 0x41
mov byte [esp + 0x105], 0xb3
mov byte [esp + 0x106], 0x46
mov byte [esp + 0x107], 0xb5
mov byte [esp + 0x108], 0x48
mov byte [esp + 0x109], 0xb7
mov byte [esp + 0x10a], 0x43
mov byte [esp + 0x10b], 0xb9
mov byte [esp + 0x10c], 0x5f
mov byte [esp + 0x10d], 0xbb
mov byte [esp + 0x10e], 0x5f
mov byte [esp + 0x10f], 0xbd
mov byte [esp + 0x110], 0x2b
mov byte [esp + 0x111], 0xbf
mov byte [esp + 0x112], 0x2c
mov byte [esp + 0x113], 0xa1
mov byte [esp + 0x114], 0x4b
mov byte [esp + 0x115], 0xa3
mov byte [esp + 0x116], 0x36
mov byte [esp + 0x117], 0xa5
mov byte [esp + 0x118], 0x3f
mov byte [esp + 0x119], 0xa7
mov byte [esp + 0x11a], 0x63
mov byte [esp + 0x11b], 0xa9
mov byte [esp + 0x11c], 0x4f
mov byte [esp + 0x11d], 0xab
mov byte [esp + 0x11e], 0x44
mov byte [esp + 0x11f], 0xad
mov byte [esp + 0x120], 0x38
mov byte [esp + 0x121], 0xaf
mov byte [esp + 0x122], 0x49
mov byte [esp + 0x123], 0x51
mov byte [esp + 0x124], 0xc2
mov byte [esp + 0x125], 0x53
mov byte [esp + 0x126], 0x80
mov byte [esp + 0x127], 0x55
mov byte [esp + 0x128], 0x54
mov byte [esp + 0x129], 0x57
mov eax, 0x2a
mov byte [esp + eax + 0x100], 0
add eax, 1
cmp eax, 0x2e
jne 0x386097
xor eax, eax
cmp eax, 0x2e
jae 0x3860e5
movzx edx, byte [esp + eax + 0x100]
mov ecx, eax
add ecx, 0xdd
and ecx, edx
mov esi, eax
add esi, 0xdd
mov edi, eax
add edi, 0xdd
and esi, edi
or esi, edx
xor ecx, esi
add cl, 0xaf
mov byte [esp + eax + 0x100], cl
add eax, 1
jmp 0x3860a9
lea eax, [esp + 0x100]
mov dword [esp], eax
mov eax, dword [0x39821c]
call eax
sub esp, 4
mov esi, eax
mov ecx, dword [esp + 0xa0]
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
lea edx, [esp + 0x98]
mov dword [esp + 0x20], edx
mov dword [esp + 4], esi
mov dword [esp], ecx
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
call eax
sub esp, 0x24
not eax
shr eax, 0x1f
mov dword [esp + 0x2ac], eax
mov eax, dword [esp + 0x2b0]
mov ecx, dword [esp + 0x2ac]
mov eax, dword [eax + ecx*4]
xor edi, edi
jmp eax
call fcn.0035e190
mov dword [esp + 0x294], 0
mov eax, dword [esp + 0x298]
mov ecx, dword [esp + 0x294]
mov eax, dword [eax + ecx*4]
jmp eax
mov eax, dword [esp + 0x80]
mov ecx, dword [eax]
mov ecx, dword [ecx + 8]
mov dword [esp], eax
call ecx
sub esp, 4
mov eax, dword [esp + 0x1b4]
mov ecx, dword [esp + 0x1b8]
mov eax, dword [ecx + eax*4]
jmp eax
call fcn.0035e190
mov dword [esp + 0x25c], 1
mov eax, dword [esp + 0x260]
mov ecx, dword [esp + 0x25c]
mov eax, dword [eax + ecx*4]
jmp eax
lea edx, [esp + 0x148]
add edx, 8
lea edi, [esp + 0x50]
mov ecx, 1
mov eax, edx
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [esp + 0x50]
add eax, 4
add edx, 4
mov esi, edx
mov edi, eax
xor ecx, ecx
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
xor ecx, ecx
mov esi, ecx
add ecx, 0xffffffff
cmp esi, 0
je 0x38622c
mov esi, edx
add esi, 1
mov edi, eax
add edi, 1
mov dl, byte [edx]
mov byte [eax], dl
mov eax, edi
mov edx, esi
jmp 0x38620e
mov al, byte [esp + 0x51]
mov ecx, dword [esp + 0x130]
mov byte [ecx], al
mov dword [esp + 0x21c], 0
mov eax, dword [esp + 0x220]
mov ecx, dword [esp + 0x21c]
mov eax, dword [eax + ecx*4]
jmp eax
mov dword [esp], 0xc
call fcn.0035c880
mov dword [eax], 0
mov ecx, eax
add ecx, 4
mov dword [esp + 0x130], ecx
mov byte [eax + 4], 0
mov esi, eax
add esi, 8
mov dword [esp + 0x15c], eax
mov dword [eax + 8], 0
lea eax, [esp + 0x148]
mov dword [esp], eax
nop
call 0x74983ed5
sub esp, 4
mov eax, dword [esp + 0x4c]
mov cl, byte [esp + 0x28]
mov byte [esp + 0xb4], cl
mov byte [esp + 0x2c], 0xb4
mov byte [esp + 0x2d], 0x27
mov byte [esp + 0x2e], 0xb4
mov byte [esp + 0x2f], 0x21
mov byte [esp + 0x30], 0xb1
mov byte [esp + 0x31], 0x23
mov byte [esp + 0x32], 0xbe
mov byte [esp + 0x33], 0x5d
mov byte [esp + 0x34], 0xd3
mov byte [esp + 0x35], 0x5f
mov byte [esp + 0x36], 0xc3
mov byte [esp + 0x37], 0x59
mov byte [esp + 0x38], 0xd4
mov byte [esp + 0x39], 0x5b
mov byte [esp + 0x3a], 0x37
mov byte [esp + 0x3b], 0x55
mov byte [esp + 0x3c], 0xd8
mov byte [esp + 0x3d], 0x57
mov byte [esp + 0x3e], 0x35
mov byte [esp + 0x3f], 0x51
mov byte [esp + 0x40], 0xdc
mov byte [esp + 0x41], 0x53
mov byte [esp + 0x42], 0xcd
mov byte [esp + 0x43], 0x4d
mov byte [esp + 0x44], 0x4c
mov byte [esp + 0x45], 0x4f
mov ecx, 0x1a
mov byte [esp + ecx + 0x2c], 0
add ecx, 1
cmp ecx, 0x1f
jne 0x386335
mov dword [esp + 0x54], esi
mov edi, ebx
xor ecx, ecx
cmp ecx, 0x1f
jae 0x38637b
movzx edx, byte [esp + ecx + 0x2c]
mov esi, ecx
add esi, 0x79508b39
xor esi, edx
mov edx, esi
xor edx, 0x1d
or esi, 0xa16d47e2
mov ebx, esi
and ebx, edx
add ebx, esi
add bl, 1
mov byte [esp + ecx + 0x2c], bl
add ecx, 1
jmp 0x38634a
mov ecx, dword [eax]
mov ecx, dword [ecx + 0x10]
lea edx, [esp + 0x148]
mov dword [esp + 0xc], edx
lea edx, [esp + 0x2c]
mov dword [esp + 4], edx
mov dword [esp], eax
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 8], 0
call ecx
sub esp, 0x18
test eax, eax
setns al
mov cx, word [esp + 0x148]
sub cx, 3
sete cl
and al, cl
mov dword [esp + 0x234], 0
mov ecx, dword [esp + 0x238]
add byte [eax], al
mov edx, dword [esp + 0x234]
mov ecx, dword [ecx + edx*4]
mov ebx, edi
jmp ecx
mov eax, dword [esp + 0x98]
mov ecx, dword [eax]
mov ecx, dword [ecx + 8]
mov dword [esp], eax
call ecx
sub esp, 4
mov eax, dword [esp + 0x1a4]
mov ecx, dword [esp + 0x1a8]
mov eax, dword [ecx + eax*4]
jmp eax
mov eax, dword [esp + 0x134]
mov dword [esp], eax
mov esi, dword [0x398220]
call esi
sub esp, 4
mov dword [esp], ebx
call esi
sub esp, 4
mov eax, dword [esp + 0x1ac]
mov ecx, dword [esp + 0x1b0]
mov eax, dword [ecx + eax*4]
mov esi, dword [esp + 0x160]
jmp eax
add dword [eax - 0x79], ebp
js 0x3863d9
test byte [eax + edi], ah
add dword [eax], eax
add byte [ecx + 0x24a12404], cl
cmp byte [ecx], 0
call eax
sub esp, 4
mov eax, dword [esp + 0x164]
mov ecx, dword [esp + 0x168]
mov eax, dword [ecx + eax*4]
jmp eax
mov eax, dword [esp + 0x24c]
mov ecx, dword [esp + 0x250]
mov ecx, dword [ecx + eax*4]
xor eax, eax
jmp ecx
call fcn.0035e190
mov dword [esp + 0x224], 0
mov eax, dword [esp + 0x228]
mov ecx, dword [esp + 0x224]
mov eax, dword [eax + ecx*4]
jmp eax
mov eax, dword [esp + 0x284]
mov ecx, dword [esp + 0x288]
mov eax, dword [ecx + eax*4]
xor edi, edi
jmp eax
mov al, cl
and eax, 1
mov dword [esp + 0x1dc], eax
mov eax, dword [esp + 0x1e0]
mov ecx, dword [esp + 0x1dc]
mov eax, dword [eax + ecx*4]
jmp eax
mov eax, dword [esp + 0x1d4]
mov ecx, dword [esp + 0x1d8]
mov eax, dword [ecx + eax*4]
mov edi, dword [esp + 0x15c]
jmp eax
movzx eax, al
and eax, 1
mov dword [esp + 0x26c], eax
mov eax, dword [esp + 0x270]
mov ecx, dword [esp + 0x26c]
mov eax, dword [eax + ecx*4]
jmp eax
lea eax, [esp + 0x148]
mov dword [esp], eax
nop
call 0x74983eae
sub esp, 4
lea eax, [esp + 0x138]
mov dword [esp], eax
call 0x74983ed5
nop
sub esp, 4
mov eax, dword [esp + 0x4c]
mov cl, byte [esp + 0x60]
mov byte [esp + 0xb8], cl
mov byte [esp + 0x64], 0x80
mov byte [esp + 0x65], 0x2b
mov byte [esp + 0x66], 0x85
mov byte [esp + 0x67], 0x29
mov byte [esp + 0x68], 0x9d
mov byte [esp + 0x69], 0x2f
mov byte [esp + 0x6a], 0x9e
mov byte [esp + 0x6b], 0x2d
mov byte [esp + 0x6c], 0x80
mov byte [esp + 0x6d], 0x33
mov byte [esp + 0x6e], 0x95
mov byte [esp + 0x6f], 0x31
mov byte [esp + 0x70], 0x8f
mov byte [esp + 0x71], 0x37
mov byte [esp + 0x72], 0x64
mov byte [esp + 0x73], 0x35
mov byte [esp + 0x74], 0x93
mov byte [esp + 0x75], 0x3b
mov byte [esp + 0x76], 0x89
mov byte [esp + 0x77], 0x39
mov byte [esp + 0x78], 0x93
mov byte [esp + 0x79], 0x3f
mov byte [esp + 0x7a], 0x3e
mov byte [esp + 0x7b], 0x3d
mov ecx, 0x18
mov byte [esp + ecx + 0x64], 0
add ecx, 1
cmp ecx, 0x1b
jne 0x3865ca
xor ecx, ecx
mov edi, dword [esp + 0x5c]
mov esi, dword [esp + 0x54]
cmp ecx, 0x1b
jae 0x386627
movzx esi, byte [esp + ecx + 0x64]
mov edi, ecx
shl edi, 1
and edi, 0x1639bf0e
mov edx, ecx
xor edx, 0xb1cdf87
add edx, edi
xor edx, esi
mov esi, edx
shl esi, 1
and esi, 2
mov edi, edx
shl edi, 1
and edi, 2
sub edx, edi
mov edi, dword [esp + 0x5c]
add edx, 0x5d
add edx, esi
mov esi, dword [esp + 0x54]
mov byte [esp + ecx + 0x64], dl
add ecx, 1
jmp 0x3865e1
mov ecx, dword [eax]
mov ecx, dword [ecx + 0x10]
lea edx, [esp + 0x138]
mov dword [esp + 0xc], edx
lea edx, [esp + 0x64]
mov dword [esp + 4], edx
mov dword [esp], eax
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 8], 0
call ecx
sub esp, 0x18
test eax, eax
setns al
mov cx, word [esp + 0x138]
sub cx, 8
sete cl
and al, cl
movzx eax, al
mov dword [esp + 0x20c], eax
mov eax, dword [esp + 0x210]
mov ecx, dword [esp + 0x20c]
mov eax, dword [eax + ecx*4]
jmp eax
fmul dword [edx + ecx*4 + 0x7999f75c]
in eax, dx
mov eax, dword [esp + 0x194]
mov ecx, dword [esp + 0x198]
mov eax, dword [ecx + eax*4]
jmp eax
movzx eax, al
and eax, 1
mov dword [esp + 0x22c], eax
mov eax, dword [esp + 0x230]
mov ecx, dword [esp + 0x22c]
mov eax, dword [eax + ecx*4]
jmp eax
call fcn.0035e190
mov dword [esp + 0x28c], 1
mov eax, dword [esp + 0x290]
mov ecx, dword [esp + 0x28c]
mov eax, dword [eax + ecx*4]
jmp eax
mov dword [esp + 0x5c], edi
call fcn.0035e190
mov dword [esp + 0x23c], 1
mov eax, dword [esp + 0x240]
mov ecx, dword [esp + 0x23c]
mov eax, dword [eax + ecx*4]
jmp eax
aaa
sub dword [eax - 0x69e5c218], esi
inc ecx
mov eax, dword [esp + 0x184]
mov ecx, dword [esp + 0x188]
mov eax, dword [ecx + eax*4]
jmp eax
mov dword [esp], esi
mov eax, dword [0x398220]
call eax
sub esp, 4
mov eax, dword [esp + 0xa0]
mov ecx, dword [eax]
mov ecx, dword [ecx + 8]
mov dword [esp], eax
call ecx
sub esp, 4
mov eax, dword [esp + 0x19c]
mov ecx, dword [esp + 0x1a0]
mov eax, dword [ecx + eax*4]
jmp eax
mov al, byte [esp + 0x43]
test al, al
mov eax, 0xf76397cd
jne 0x387157
mov eax, 0xfbf6f1f
mov ecx, dword [esp + 0x30]
mov dword [ecx], eax
mov byte [esp + 0x2f], 0
mov eax, dword [esp + 0xbc]
mov ecx, dword [esp + 0xc0]
mov eax, dword [ecx + eax*4]
jmp eax
xor ecx, ecx
sub eax, 0xc906049e
sete cl
mov dword [esp + 0x11c], ecx
mov eax, dword [esp + 0x120]
mov ecx, dword [esp + 0x11c]
mov eax, dword [eax + ecx*4]
jmp eax
xor ecx, ecx
sub eax, 0xa8f190bb
sete cl
mov dword [esp + 0xf4], ecx
mov eax, dword [esp + 0xf8]
mov ecx, dword [esp + 0xf4]
mov eax, dword [eax + ecx*4]
jmp eax
mov eax, dword [esp + 0x74]
mov dword [esp], eax
call fcn.0035c890
mov eax, dword [esp + 0x30]
mov dword [eax], 0xfbf6f1f
mov al, byte [esp + 0x37]
mov byte [esp + 0x2f], al
mov eax, dword [esp + 0xac]
mov ecx, dword [esp + 0xb0]
mov eax, dword [ecx + eax*4]
jmp eax
xor ecx, ecx
mov edx, eax
sub edx, 0x8ae1335
setl cl
mov dword [esp + 0x15c], ecx
mov ecx, dword [esp + 0x160]
mov edx, dword [esp + 0x15c]
mov ecx, dword [ecx + edx*4]
jmp ecx
jb case.0x38075a.185
pushal
mov word [ebx], es
hlt
xor ecx, ecx
sub eax, 0xf12889e8
sete cl
mov dword [esp + 0x124], ecx
mov eax, dword [esp + 0x128]
mov ecx, dword [esp + 0x124]
mov eax, dword [eax + ecx*4]
jmp eax
mov ecx, dword [esp + 0x80]
mov eax, dword [esp + 0x58]
mov dl, byte [esp + 0x54]
mov byte [esp + 0x5c], dl
mov byte [esp + 0x60], 0x5f
mov byte [esp + 0x61], 0x6e
mov byte [esp + 0x62], pe_nt_image_headers32
mov byte [esp + 0x63], 0x6a
mov byte [esp + 0x64], 0x69
mov byte [esp + 0x65], 0x7f
mov byte [esp + 0x66], 0x30
mov byte [esp + 0x67], 0x73
mov byte [esp + 0x68], 0x72
mov byte [esp + 0x69], 0x7a
mov byte [esp + 0x6a], 6
mov edx, 0xb
mov byte [esp + edx + 0x60], 0
add edx, 1
cmp edx, 0xd
jne 0x3872be
xor edx, edx
cmp edx, 0xd
jae 0x38731e
movzx ebp, byte [esp + edx + 0x60]
mov ebx, edx
add ebx, 0x704bae02
mov edi, 0xfd
sub edi, edx
mov esi, 0xfd
sub esi, edx
and edi, esi
mov esi, edx
add esi, 0x704bae02
and ebx, esi
or ebx, ebp
xor ebp, 0xffffffff
or edi, ebp
xor edi, ebx
mov ebx, 0xce8599f4
sub ebx, edi
mov esi, ebx
shl esi, 1
and esi, 2
xor ebx, 1
add ebx, esi
mov byte [esp + edx + 0x60], bl
add edx, 1
jmp 0x3872cd
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
lea eax, [esp + 0x60]
mov dword [esp], eax
mov ecx, dword [esp + 0x1e4]
call fcn.0035d410
sub esp, 0xc
mov byte [esp + 0x37], al
mov eax, dword [esp + 0x58]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x74]
test eax, eax
mov eax, 0xfbf6f1f
je 0x38735a
mov eax, 0xa8f190bb
mov ecx, dword [esp + 0x30]
mov dword [ecx], eax
mov al, byte [esp + 0x37]
mov byte [esp + 0x2f], al
mov eax, dword [esp + 0xb4]
mov ecx, dword [esp + 0xb8]
mov eax, dword [ecx + eax*4]
jmp eax
xor ecx, ecx
sub eax, 0xc0655718
sete cl
mov dword [esp + 0x114], ecx
mov eax, dword [esp + 0x118]
mov ecx, dword [esp + 0x114]
mov eax, dword [eax + ecx*4]
jmp eax
pop esp
mov dword ds:[ecx + edi*8 - 0x748da9a8], ebx
inc esp
and al, 0x38
mov ecx, dword [esp + 0x48]
mov dword [esp + 4], ecx
mov dword [esp], eax
mov eax, dword [0x398254]
call eax
sub esp, 8
mov eax, dword [esp + 0x38]
mov dword [esp], eax
mov eax, dword [0x39823c]
call eax
sub esp, 4
mov eax, dword [esp + 0x3c]
mov dword [esp + 4], eax
mov dword [esp], 0
mov eax, dword [0x3981fc]
call eax
sub esp, 8
mov eax, dword [esp + 0x48]
mov dword [esp], eax
mov eax, dword [0x398240]
call eax
sub esp, 4
mov eax, dword [esp + 0x44]
lea ecx, [esp + 0x80]
mov dword [esp + 8], ecx
lea ecx, [esp + 0x58]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00387900
mov eax, dword [esp + 0x30]
mov dword [eax], 0xc906049e
mov eax, dword [esp + 0x94]
mov ecx, dword [esp + 0x98]
mov eax, dword [ecx + eax*4]
jmp eax
xor ecx, ecx
sub eax, 0xf76397cd
sete cl
mov dword [esp + 0x144], ecx
mov eax, dword [esp + 0x148]
mov ecx, dword [esp + 0x144]
mov eax, dword [eax + ecx*4]
jmp eax
xor ecx, ecx
mov edx, eax
sub edx, 0x4d41442b
setl cl
mov dword [esp + 0x184], ecx
mov ecx, dword [esp + 0x188]
mov edx, dword [esp + 0x184]
mov ecx, dword [ecx + edx*4]
jmp ecx
xor ecx, ecx
sub eax, 0xa839d3b8
sete cl
mov dword [esp + 0xec], ecx
mov eax, dword [esp + 0xf0]
mov ecx, dword [esp + 0xec]
mov eax, dword [eax + ecx*4]
jmp eax
xor ecx, ecx
mov edx, eax
sub edx, 0xfbf6f1f
setl cl
mov dword [esp + 0x194], ecx
mov ecx, dword [esp + 0x198]
mov edx, dword [esp + 0x194]
mov ecx, dword [ecx + edx*4]
jmp ecx
call fcn.0035e190
mov eax, dword [esp + 0x30]
mov dword [eax], 0xc906049e
mov eax, dword [esp + 0xcc]
mov ecx, dword [esp + 0xd0]
mov eax, dword [ecx + eax*4]
jmp eax
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x88]
mov eax, dword [ecx + eax*4]
jmp eax
xor ecx, ecx
sub eax, 0xb5e69617
sete cl
mov dword [esp + 0xfc], ecx
mov eax, dword [esp + 0x100]
mov ecx, dword [esp + 0xfc]
mov eax, dword [eax + ecx*4]
jmp eax
call fcn.0035e190
mov eax, dword [esp + 0x44]
mov dword [esp], eax
mov eax, dword [0x398240]
call eax
sub esp, 4
mov al, byte [esp + 0x41]
and al, 1
mov byte [esp + 0x42], al
mov eax, dword [esp + 0x30]
mov dword [eax], 0xc0655718
mov eax, dword [esp + 0x9c]
mov ecx, dword [esp + 0xa0]
mov eax, dword [ecx + eax*4]
jmp eax
xor ecx, ecx
mov edx, eax
sub edx, 0xf76397cd
setl cl
mov dword [esp + 0x19c], ecx
mov ecx, dword [esp + 0x1a0]
mov edx, dword [esp + 0x19c]
mov ecx, dword [ecx + edx*4]
jmp ecx
xor ecx, ecx
mov edx, eax
sub edx, 0xb5e69617
setl cl
mov dword [esp + 0x104], ecx
mov ecx, dword [esp + 0x108]
mov edx, dword [esp + 0x104]
mov ecx, dword [ecx + edx*4]
jmp ecx
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xe8]
mov eax, dword [ecx + eax*4]
jmp eax
xor ecx, ecx
sub eax, 0x8ae1335
sete cl
mov dword [esp + 0x154], ecx
mov eax, dword [esp + 0x158]
mov ecx, dword [esp + 0x154]
mov eax, dword [eax + ecx*4]
jmp eax
xor ecx, ecx
sub eax, 0x3d0f6e4a
sete cl
mov dword [esp + 0x174], ecx
mov eax, dword [esp + 0x178]
mov ecx, dword [esp + 0x174]
mov eax, dword [eax + ecx*4]
jmp eax
xor ecx, ecx
mov edx, eax
sub edx, 0xc0655718
setl cl
mov dword [esp + 0x13c], ecx
mov ecx, dword [esp + 0x140]
mov edx, dword [esp + 0x13c]
mov ecx, dword [ecx + edx*4]
jmp ecx
xor ecx, ecx
mov edx, eax
sub edx, 0xc906049e
setl cl
mov dword [esp + 0x134], ecx
mov ecx, dword [esp + 0x138]
mov edx, dword [esp + 0x134]
mov ecx, dword [ecx + edx*4]
jmp ecx
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x1a4]
mov edx, dword [esp + 0x1a8]
mov ecx, dword [edx + ecx*4]
jmp ecx
xor ecx, ecx
mov edx, eax
sub edx, 0x3d0f6e4a
setl cl
mov dword [esp + 0x18c], ecx
mov ecx, dword [esp + 0x190]
mov edx, dword [esp + 0x18c]
mov ecx, dword [ecx + edx*4]
jmp ecx
mov al, byte [esp + 0x2f]
mov byte [esp + 0x41], al
call fcn.0035e190
mov eax, dword [esp + 0x30]
mov dword [eax], 0x3d0f6e4a
mov eax, dword [esp + 0xa4]
mov ecx, dword [esp + 0xa8]
mov eax, dword [ecx + eax*4]
jmp eax
xor ecx, ecx
sub eax, 0x4d41442b
sete cl
mov dword [esp + 0x17c], ecx
mov eax, dword [esp + 0x180]
mov ecx, dword [esp + 0x17c]
mov eax, dword [eax + ecx*4]
jmp eax
mov al, byte [esp + 0x42]
and al, 1
movzx eax, al
add esp, 0x1d0
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x78]
mov esi, dword [esp + 0x50]
mov edi, dword [esp + 0x4c]
mov ebx, dword [esp + 0x38]
mov dword [esp + 0x24], edx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], esi
mov dword [esp], ebx
mov dword [esp + 0x28], 0xcc0020
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov eax, dword [0x398258]
call eax
sub esp, 0x2c
mov eax, dword [esp + 0x30]
mov dword [eax], 0x8ae1335
mov eax, dword [esp + 0xd4]
mov ecx, dword [esp + 0xd8]
mov eax, dword [ecx + eax*4]
jmp eax
xor ecx, ecx
mov edx, eax
sub edx, 0xa8f190bb
setl cl
mov dword [esp + 0x10c], ecx
mov ecx, dword [esp + 0x110]
mov edx, dword [esp + 0x10c]
mov ecx, dword [ecx + edx*4]
jmp ecx
xor ecx, ecx
sub eax, 0xfb92d08f
sete cl
mov dword [esp + 0x14c], ecx
mov eax, dword [esp + 0x150]
mov ecx, dword [esp + 0x14c]
mov eax, dword [eax + ecx*4]
jmp eax
xor ecx, ecx
mov edx, eax
sub edx, 0xf12889e8
setl cl
mov dword [esp + 0x12c], ecx
mov ecx, dword [esp + 0x130]
mov edx, dword [esp + 0x12c]
mov ecx, dword [ecx + edx*4]
jmp ecx
xor ecx, ecx
sub eax, 0xfbf6f1f
sete cl
mov dword [esp + 0x16c], ecx
mov eax, dword [esp + 0x170]
mov ecx, dword [esp + 0x16c]
mov eax, dword [eax + ecx*4]
jmp eax
call fcn.0035e190
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x48]
mov dword [esp + 4], ecx
mov dword [esp], eax
mov eax, dword [0x398254]
call eax
sub esp, 8
mov eax, dword [esp + 0x38]
mov dword [esp], eax
mov eax, dword [0x39823c]
call eax
sub esp, 4
mov eax, dword [esp + 0x3c]
mov dword [esp + 4], eax
mov dword [esp], 0
mov eax, dword [0x3981fc]
call eax
sub esp, 8
mov eax, dword [esp + 0x48]
mov dword [esp], eax
mov eax, dword [0x398240]
call eax
sub esp, 4
mov eax, dword [esp + 0x44]
lea ecx, [esp + 0x80]
mov dword [esp + 8], ecx
lea ecx, [esp + 0x58]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00387900
mov byte [esp + 0x43], al
mov eax, dword [esp + 0x30]
mov dword [eax], 0xa839d3b8
mov eax, dword [esp + 0xc4]
mov ecx, dword [esp + 0xc8]
mov eax, dword [ecx + eax*4]
jmp eax
mov eax, dword [esp + 0x1ac]
sub eax, 0xffffffff
mov eax, 0xf12889e8
jl 0x3878bd
mov eax, 0x8ae1335
mov ecx, dword [esp + 0x30]
mov dword [ecx], eax
mov eax, dword [esp + 0xdc]
mov ecx, dword [esp + 0xe0]
mov eax, dword [ecx + eax*4]
jmp eax
xor ecx, ecx
mov edx, eax
sub edx, 0xfb92d08f
setl cl
mov dword [esp + 0x164], ecx
mov ecx, dword [esp + 0x168]
mov edx, dword [esp + 0x164]
mov ecx, dword [ecx + edx*4]
jmp ecx
xor ecx, ecx
mov edx, eax
sub edx, 0x4c1ece02
setl cl
mov dword [esp + 0x250], ecx
mov ecx, dword [esp + 0x254]
mov edx, dword [esp + 0x250]
mov ecx, dword [ecx + edx*4]
jmp ecx
xor ecx, ecx
mov edx, eax
sub edx, 0xc8f3644b
setl cl
mov dword [esp + 0x1f8], ecx
mov ecx, dword [esp + 0x1fc]
mov edx, dword [esp + 0x1f8]
mov ecx, dword [ecx + edx*4]
jmp ecx
xor ecx, ecx
mov edx, eax
sub edx, 0xd6a10e6c
setl cl
mov dword [esp + 0x1f0], ecx
mov ecx, dword [esp + 0x1f4]
mov edx, dword [esp + 0x1f0]
mov ecx, dword [ecx + edx*4]
jmp ecx
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x2e0]
mov edx, dword [esp + 0x2e4]
mov ecx, dword [edx + ecx*4]
jmp ecx
xor ecx, ecx
mov edx, eax
sub edx, 0x5159392a
setl cl
mov dword [esp + 0x2c8], ecx
mov ecx, dword [esp + 0x2cc]
mov edx, dword [esp + 0x2c8]
mov ecx, dword [ecx + edx*4]
jmp ecx
xor ecx, ecx
sub eax, 0x3ff51ec1
sete cl
mov dword [esp + 0x230], ecx
mov eax, dword [esp + 0x234]
mov ecx, dword [esp + 0x230]
mov eax, dword [eax + ecx*4]
jmp eax
xor ecx, ecx
sub eax, 0xb3610ad1
sete cl
mov dword [esp + 0x168], ecx
mov eax, dword [esp + 0x16c]
mov ecx, dword [esp + 0x168]
mov eax, dword [eax + ecx*4]
jmp eax
xor ecx, ecx
sub eax, 0x5159392a
sete cl
mov dword [esp + 0x290], ecx
mov eax, dword [esp + 0x294]
mov ecx, dword [esp + 0x290]
mov eax, dword [eax + ecx*4]
jmp eax
xor ecx, ecx
mov edx, eax
sub edx, 0x96c0fc81
setl cl
mov dword [esp + 0x158], ecx
mov ecx, dword [esp + 0x15c]
mov edx, dword [esp + 0x158]
mov ecx, dword [ecx + edx*4]
jmp ecx
xor ecx, ecx
sub eax, 0x7c4387e
sete cl
mov dword [esp + 0x200], ecx
mov eax, dword [esp + 0x204]
mov ecx, dword [esp + 0x200]
mov eax, dword [eax + ecx*4]
jmp eax
call fcn.0035e190
mov eax, dword [esp + 0x34]
inc eax
mov dword [esp + 0x2ec], eax
mov eax, dword [esp + 0x1c]
mov dword [eax], 0x7ff476bd
mov eax, dword [esp + 0xf0]
mov ecx, dword [esp + 0xf4]
mov eax, dword [ecx + eax*4]
jmp eax
mov eax, dword [esp + 0x1c]
mov dword [eax], 0x4c1ece02
mov eax, dword [esp + 0x2ec]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0xe8]
mov ecx, dword [esp + 0xec]
mov eax, dword [ecx + eax*4]
jmp eax
mov al, byte [esp + 0x20]
mov byte [esp + 0x22], al
mov eax, dword [esp + 0x38]
mov dword [esp + 4], eax
mov dword [esp], 0
mov eax, dword [0x3981fc]
call eax
sub esp, 8
mov eax, dword [esp + 0x1c]
mov dword [eax], 0xb3610ad1
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0x9c]
mov eax, dword [ecx + eax*4]
jmp eax
xor ecx, ecx
sub eax, 0xcbd90315
sete cl
mov dword [esp + 0x198], ecx
mov eax, dword [esp + 0x19c]
mov ecx, dword [esp + 0x198]
mov eax, dword [eax + ecx*4]
jmp eax
mov al, byte [esp + 0x21]
mov byte [esp + 0x23], al
call fcn.0035e190
mov eax, dword [esp + 0x1c]
mov dword [eax], 0xd6a10e6c
mov eax, dword [esp + 0xb0]
mov ecx, dword [esp + 0xb4]
mov eax, dword [ecx + eax*4]
jmp eax
call fcn.0035e190
mov esi, dword [esp + 0x4c]
mov ecx, dword [esp + 0x30]
mov eax, dword [esi + ecx*4]
mov edx, eax
and edx, 0xff00ff00
mov ebx, eax
xor ebx, 0xff000000
mov edi, eax
or edi, 0xff0000
and edi, ebx
shr edi, 0x10
or edx, edi
movzx eax, al
shl eax, 0x10
or edx, eax
mov dword [esi + ecx*4], edx
mov eax, dword [esp + 0x30]
inc eax
mov dword [esp + 0x2e8], eax
mov eax, dword [esp + 0x1c]
mov dword [eax], 0x3a65c90c
mov eax, dword [esp + 0xd8]
mov ecx, dword [esp + 0xdc]
mov eax, dword [ecx + eax*4]
jmp eax
xor ecx, ecx
mov edx, eax
sub edx, 0x3a65c90c
setl cl
mov dword [esp + 0x260], ecx
mov ecx, dword [esp + 0x264]
mov edx, dword [esp + 0x260]
mov ecx, dword [ecx + edx*4]
jmp ecx
xor ecx, ecx
sub eax, 0x7ff476bd
sete cl
mov dword [esp + 0x2b0], ecx
mov eax, dword [esp + 0x2b4]
mov ecx, dword [esp + 0x2b0]
mov eax, dword [eax + ecx*4]
jmp eax
xor ecx, ecx
sub eax, 0x2777ff4
sete cl
mov dword [esp + 0x1d8], ecx
mov eax, dword [esp + 0x1dc]
mov ecx, dword [esp + 0x1d8]
mov eax, dword [eax + ecx*4]
jmp eax
xor ecx, ecx
sub eax, 0xc8f3644b
sete cl
mov dword [esp + 0x190], ecx
mov eax, dword [esp + 0x194]
mov ecx, dword [esp + 0x190]
mov eax, dword [eax + ecx*4]
jmp eax
mov eax, dword [esp + 0x1c]
mov dword [eax], 0x31e14526
mov eax, dword [esp + 0x2e8]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0xd0]
mov ecx, dword [esp + 0xd4]
mov eax, dword [ecx + eax*4]
jmp eax
xor ecx, ecx
sub eax, 0x4c1ece02
sete cl
mov dword [esp + 0x248], ecx
mov eax, dword [esp + 0x24c]
mov ecx, dword [esp + 0x248]
mov eax, dword [eax + ecx*4]
jmp eax
xor ecx, ecx
sub eax, 0xd055ef40
sete cl
mov dword [esp + 0x1a0], ecx
mov eax, dword [esp + 0x1a4]
mov ecx, dword [esp + 0x1a0]
mov eax, dword [eax + ecx*4]
jmp eax
xor ecx, ecx
sub eax, 0x4e2da2aa
sete cl
mov dword [esp + 0x268], ecx
mov eax, dword [esp + 0x26c]
mov ecx, dword [esp + 0x268]
mov eax, dword [eax + ecx*4]
jmp eax
mov eax, dword [esp + 0x130]
mov ecx, dword [esp + 0x134]
mov eax, dword [ecx + eax*4]
jmp eax
xor ecx, ecx
sub eax, 0x48a887f0
sete cl
mov dword [esp + 0x240], ecx
mov eax, dword [esp + 0x244]
mov ecx, dword [esp + 0x240]
mov eax, dword [eax + ecx*4]
jmp eax
xor ecx, ecx
mov edx, eax
sub edx, 0xb0ae2eae
setl cl
mov dword [esp + 0x188], ecx
mov ecx, dword [esp + 0x18c]
mov edx, dword [esp + 0x188]
mov ecx, dword [ecx + edx*4]
jmp ecx
mov eax, dword [esp + 0x1c]
mov dword [eax], 0x7bfd0401
mov byte [esp + 0x21], 0
mov eax, dword [esp + 0xb8]
mov ecx, dword [esp + 0xbc]
mov eax, dword [ecx + eax*4]
jmp eax
mov dword [esp + 0x54], 0
mov eax, dword [esp + 0x28]
mov eax, dword [eax]
mov ecx, dword [esp + 0x2c]
mov ecx, dword [ecx]
mov edx, dword [esp + 0x3c]
mov esi, dword [esp + 0x24]
lea edi, [esp + 0x54]
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], edx
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov dword [esp], esi
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 9
call fcn.00358460
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x50]
test eax, eax
mov eax, 0x7c4387e
jne 0x388406
mov eax, 0x4f7ef3d6
mov ecx, dword [esp + 0x1c]
mov dword [ecx], eax
mov eax, dword [esp + 0x110]
mov ecx, dword [esp + 0x114]
mov eax, dword [ecx + eax*4]
jmp eax
xor ecx, ecx
sub eax, 0x3a65c90c
sete cl
mov dword [esp + 0x228], ecx
mov eax, dword [esp + 0x22c]
mov ecx, dword [esp + 0x228]
mov eax, dword [eax + ecx*4]
jmp eax
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x358]
mov dword [ecx], eax
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x354]
mov dword [ecx], eax
mov eax, dword [esp + 0x1c]
mov dword [eax], 0x7bfd0401
mov byte [esp + 0x21], 1
mov eax, dword [esp + 0xc8]
mov ecx, dword [esp + 0xcc]
mov eax, dword [ecx + eax*4]
jmp eax
pop ss
mov byte [0x448be1db], al
and al, 0x24
mov dword [esp], eax
call fcn.0035c890
mov eax, dword [esp + 0x1c]
mov dword [eax], 0xf78342d6
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x64]
mov eax, dword [ecx + eax*4]
jmp eax
mov al, byte [esp + 0x22]
and al, 1
movzx eax, al
add esp, 0x33c
pop esi
pop edi
pop ebx
pop ebp
ret
call fcn.0035e190
mov eax, dword [esp + 0x1c]
mov dword [eax], 0xf78342d6
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0x94]
mov eax, dword [ecx + eax*4]
jmp eax
xor ecx, ecx
sub eax, 0x2a78fb8d
sete cl
mov dword [esp + 0x208], ecx
mov eax, dword [esp + 0x20c]
mov ecx, dword [esp + 0x208]
mov eax, dword [eax + ecx*4]
jmp eax
xor ecx, ecx
mov edx, eax
sub edx, 0x3ff51ec1
setl cl
mov dword [esp + 0x238], ecx
mov ecx, dword [esp + 0x23c]
mov edx, dword [esp + 0x238]
mov ecx, dword [ecx + edx*4]
jmp ecx
xor ecx, ecx
mov edx, eax
sub edx, 0x7ff476bd
setl cl
mov dword [esp + 0x2b8], ecx
mov ecx, dword [esp + 0x2bc]
mov edx, dword [esp + 0x2b8]
mov ecx, dword [ecx + edx*4]
jmp ecx
xor ecx, ecx
mov edx, eax
sub edx, 0x2777ff4
setl cl
mov dword [esp + 0x1e0], ecx
mov ecx, dword [esp + 0x1e4]
mov edx, dword [esp + 0x1e0]
mov ecx, dword [ecx + edx*4]
jmp ecx
xor ecx, ecx
mov edx, eax
sub edx, 0xcbd90315
setl cl
mov dword [esp + 0x1b0], ecx
mov ecx, dword [esp + 0x1b4]
mov edx, dword [esp + 0x1b0]
mov ecx, dword [ecx + edx*4]
jmp ecx
xor ecx, ecx
mov edx, eax
sub edx, 0x4f2ecae6
setl cl
mov dword [esp + 0x288], ecx
mov ecx, dword [esp + 0x28c]
mov edx, dword [esp + 0x288]
mov ecx, dword [ecx + edx*4]
jmp ecx
xor ecx, ecx
sub eax, 0x9fe69093
sete cl
mov dword [esp + 0x148], ecx
mov eax, dword [esp + 0x14c]
mov ecx, dword [esp + 0x148]
mov eax, dword [eax + ecx*4]
jmp eax
mov eax, dword [esp + 0x2c]
mov eax, dword [eax]
mov ecx, dword [esp + 0x3c]
mov edx, eax
not edx
mov esi, ecx
and esi, edx
mov edx, ecx
not edx
mov edi, eax
and edi, edx
imul edi, esi
mov edx, eax
and edx, ecx
or eax, ecx
imul eax, edx
add eax, edi
mov ecx, dword [esp + 0x34]
imul eax, ecx
mov ecx, dword [esp + 0x24]
add ecx, eax
mov dword [esp + 0x4c], ecx
mov eax, dword [esp + 0x1c]
mov dword [eax], 0x31e14526
mov dword [esp + 0x44], 0
mov eax, dword [esp + 0x108]
mov ecx, dword [esp + 0x10c]
mov eax, dword [ecx + eax*4]
jmp eax
xor ecx, ecx
sub eax, 0x31e14526
sete cl
mov dword [esp + 0x210], ecx
mov eax, dword [esp + 0x214]
mov ecx, dword [esp + 0x210]
mov eax, dword [eax + ecx*4]
jmp eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x2c]
mov eax, dword [eax]
mov ecx, dword [esp + 0x30]
sub ecx, eax
mov eax, 0x48a887f0
jl 0x388689
mov eax, 0xc0a5b77c
mov ecx, dword [esp + 0x1c]
mov dword [ecx], eax
mov eax, dword [esp + 0x100]
mov ecx, dword [esp + 0x104]
mov eax, dword [ecx + eax*4]
jmp eax
call fcn.0035e190
mov eax, dword [esp + 0x24]
mov dword [esp], eax
call fcn.0035c890
mov eax, dword [esp + 0x1c]
mov dword [eax], 0x8c7e0204
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x8c]
mov eax, dword [ecx + eax*4]
jmp eax
xor ecx, ecx
mov edx, eax
sub edx, 0x4e2da2aa
setl cl
mov dword [esp + 0x2d0], ecx
mov ecx, dword [esp + 0x2d4]
mov edx, dword [esp + 0x2d0]
mov ecx, dword [ecx + edx*4]
jmp ecx
xor ecx, ecx
mov edx, eax
sub edx, 0x7bfd0401
setl cl
mov dword [esp + 0x2c0], ecx
mov ecx, dword [esp + 0x2c4]
mov edx, dword [esp + 0x2c0]
mov ecx, dword [ecx + edx*4]
jmp ecx
xor ecx, ecx
mov edx, eax
sub edx, 0xb3610ad1
setl cl
mov dword [esp + 0x180], ecx
mov ecx, dword [esp + 0x184]
mov edx, dword [esp + 0x180]
mov ecx, dword [ecx + edx*4]
jmp ecx
xor ecx, ecx
sub eax, 0x4f7ef3d6
sete cl
mov dword [esp + 0x278], ecx
mov eax, dword [esp + 0x27c]
mov ecx, dword [esp + 0x278]
mov eax, dword [eax + ecx*4]
jmp eax
mov eax, dword [esp + 0x2f0]
test eax, eax
mov eax, 0x3ff51ec1
jne 0x38877e
mov eax, 0x4e2da2aa
mov ecx, dword [esp + 0x1c]
mov dword [ecx], eax
mov byte [esp + 0x20], 0
mov eax, dword [esp + 0x128]
mov ecx, dword [esp + 0x12c]
mov eax, dword [ecx + eax*4]
jmp eax
mov eax, dword [esp + 0x1c]
mov dword [eax], 0xf8a418a7
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x84]
mov eax, dword [ecx + eax*4]
jmp eax
xchg esp, eax
retf
xor ecx, ecx
sub eax, 0xb0ae2eae
sete cl
mov dword [esp + 0x160], ecx
mov eax, dword [esp + 0x164]
mov ecx, dword [esp + 0x160]
mov eax, dword [eax + ecx*4]
jmp eax
xor ecx, ecx
sub eax, 0x8c7e0204
sete cl
mov dword [esp + 0x138], ecx
mov eax, dword [esp + 0x13c]
mov ecx, dword [esp + 0x138]
mov eax, dword [eax + ecx*4]
jmp eax
xor ecx, ecx
sub eax, 0xf78342d6
sete cl
mov dword [esp + 0x1c0], ecx
mov eax, dword [esp + 0x1c4]
mov ecx, dword [esp + 0x1c0]
mov eax, dword [eax + ecx*4]
jmp eax
xor ecx, ecx
mov edx, eax
sub edx, 0x2a78fb8d
setl cl
mov dword [esp + 0x220], ecx
mov ecx, dword [esp + 0x224]
mov edx, dword [esp + 0x220]
mov ecx, dword [ecx + edx*4]
jmp ecx
call fcn.0035e190
mov eax, dword [esp + 0x1c]
mov dword [eax], 0xd055ef40
mov eax, dword [esp + 0xf8]
mov ecx, dword [esp + 0xfc]
mov eax, dword [ecx + eax*4]
jmp eax
xor ecx, ecx
sub eax, 0x96c0fc81
sete cl
mov dword [esp + 0x140], ecx
mov eax, dword [esp + 0x144]
mov ecx, dword [esp + 0x140]
mov eax, dword [eax + ecx*4]
jmp eax
xor ecx, ecx
mov edx, eax
sub edx, 0x9fe69093
setl cl
mov dword [esp + 0x150], ecx
mov ecx, dword [esp + 0x154]
mov edx, dword [esp + 0x150]
mov ecx, dword [ecx + edx*4]
jmp ecx
xor ecx, ecx
sub eax, 0x7bfd0401
sete cl
mov dword [esp + 0x2a8], ecx
mov eax, dword [esp + 0x2ac]
mov ecx, dword [esp + 0x2a8]
mov eax, dword [eax + ecx*4]
jmp eax
call fcn.0035e190
mov eax, dword [esp + 0x1c]
mov dword [eax], 0x2a78fb8d
mov eax, dword [esp + 0xa8]
mov ecx, dword [esp + 0xac]
mov eax, dword [ecx + eax*4]
jmp eax
xor ecx, ecx
mov edx, eax
sub edx, 0x48a887f0
setl cl
mov dword [esp + 0x258], ecx
mov ecx, dword [esp + 0x25c]
mov edx, dword [esp + 0x258]
mov ecx, dword [ecx + edx*4]
jmp ecx
xor ecx, ecx
mov edx, eax
sub edx, 0x7be361be
setl cl
mov dword [esp + 0x2a0], ecx
mov ecx, dword [esp + 0x2a4]
mov edx, dword [esp + 0x2a0]
mov ecx, dword [ecx + edx*4]
jmp ecx
xor ecx, ecx
sub eax, 0x4f2ecae6
sete cl
mov dword [esp + 0x270], ecx
mov eax, dword [esp + 0x274]
mov ecx, dword [esp + 0x270]
mov eax, dword [eax + ecx*4]
jmp eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x28]
mov eax, dword [eax]
mov ecx, dword [esp + 0x34]
sub ecx, eax
mov eax, 0x5159392a
jl 0x3889b0
mov eax, 0xc8f3644b
mov ecx, dword [esp + 0x1c]
mov dword [ecx], eax
mov eax, dword [esp + 0x118]
mov ecx, dword [esp + 0x11c]
mov eax, dword [ecx + eax*4]
jmp eax
mov eax, dword [esp + 0x1c]
mov dword [eax], 0x4c1ece02
mov dword [esp + 0x48], 0
mov eax, dword [esp + 0x120]
mov ecx, dword [esp + 0x124]
mov eax, dword [ecx + eax*4]
jmp eax
xor ecx, ecx
mov edx, eax
sub edx, 0xd055ef40
setl cl
mov dword [esp + 0x1a8], ecx
mov ecx, dword [esp + 0x1ac]
mov edx, dword [esp + 0x1a8]
mov ecx, dword [ecx + edx*4]
jmp ecx
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x5c]
mov eax, dword [ecx + eax*4]
jmp eax
mov eax, dword [esp + 0x38]
mov dword [esp], eax
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov eax, dword [0x398250]
call eax
sub esp, 0xc
mov eax, dword [esp + 0x1c]
mov dword [eax], 0x7be361be
mov eax, dword [esp + 0xc0]
mov ecx, dword [esp + 0xc4]
mov eax, dword [ecx + eax*4]
jmp eax
xor ecx, ecx
mov edx, eax
sub edx, 0xf8a418a7
setl cl
mov dword [esp + 0x1e8], ecx
mov ecx, dword [esp + 0x1ec]
mov edx, dword [esp + 0x1e8]
mov ecx, dword [ecx + edx*4]
jmp ecx
mov eax, dword [esp + 0x1c]
mov dword [eax], 0xd055ef40
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x7c]
mov eax, dword [ecx + eax*4]
jmp eax
xor ecx, ecx
mov edx, eax
sub edx, 0x4f7ef3d6
setl cl
mov dword [esp + 0x280], ecx
mov ecx, dword [esp + 0x284]
mov edx, dword [esp + 0x280]
mov ecx, dword [ecx + edx*4]
jmp ecx
xor ecx, ecx
sub eax, 0x7be361be
sete cl
mov dword [esp + 0x298], ecx
mov eax, dword [esp + 0x29c]
mov ecx, dword [esp + 0x298]
mov eax, dword [eax + ecx*4]
jmp eax
xor ecx, ecx
sub eax, 0xc0a5b77c
sete cl
mov dword [esp + 0x170], ecx
mov eax, dword [esp + 0x174]
mov ecx, dword [esp + 0x170]
mov eax, dword [eax + ecx*4]
jmp eax
xor ecx, ecx
mov edx, eax
sub edx, 0x31e14526
setl cl
mov dword [esp + 0x218], ecx
mov ecx, dword [esp + 0x21c]
mov edx, dword [esp + 0x218]
mov ecx, dword [ecx + edx*4]
jmp ecx
xor ecx, ecx
mov edx, eax
sub edx, 0xf78342d6
setl cl
mov dword [esp + 0x1c8], ecx
mov ecx, dword [esp + 0x1cc]
mov edx, dword [esp + 0x1c8]
mov ecx, dword [ecx + edx*4]
jmp ecx
xor ecx, ecx
sub eax, 0xd6a10e6c
sete cl
mov dword [esp + 0x1b8], ecx
mov eax, dword [esp + 0x1bc]
mov ecx, dword [esp + 0x1b8]
mov eax, dword [eax + ecx*4]
jmp eax
call fcn.0035e190
mov eax, dword [esp + 0x1c]
mov dword [eax], 0x4f2ecae6
mov eax, dword [esp + 0xe0]
mov ecx, dword [esp + 0xe4]
mov eax, dword [ecx + eax*4]
jmp eax
xor ecx, ecx
mov edx, eax
sub edx, 0x7c4387e
setl cl
mov dword [esp + 0x2d8], ecx
mov ecx, dword [esp + 0x2dc]
mov edx, dword [esp + 0x2d8]
mov ecx, dword [ecx + edx*4]
jmp ecx
xor ecx, ecx
sub eax, 0xf8a418a7
sete cl
mov dword [esp + 0x1d0], ecx
mov eax, dword [esp + 0x1d4]
mov ecx, dword [esp + 0x1d0]
mov eax, dword [eax + ecx*4]
jmp eax
mov eax, dword [esp + 0x1c]
mov dword [eax], 0x4e2da2aa
mov al, byte [esp + 0x23]
mov byte [esp + 0x20], al
mov eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0xa4]
mov eax, dword [ecx + eax*4]
jmp eax
xor ecx, ecx
mov edx, eax
sub edx, 0xc0a5b77c
setl cl
mov dword [esp + 0x178], ecx
mov ecx, dword [esp + 0x17c]
mov edx, dword [esp + 0x178]
mov ecx, dword [ecx + edx*4]
jmp ecx
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x30]
mov ebx, dword [eax + ecx*4]
mov edx, ebx
and edx, 0xff00ff00
mov esi, ebx
and esi, 0xff0000
shr esi, 0x10
or edx, esi
movzx esi, bl
shl esi, 0x10
not edx
not esi
and edx, esi
not edx
mov dword [eax + ecx*4], edx
mov eax, dword [esp + 0x1c]
mov dword [eax], 0x4f2ecae6
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x74]
mov eax, dword [ecx + eax*4]
jmp eax
into
aaa
add byte [edi + ecx*8], ch
aaa
add ch, ah
into
aaa
add cl, dh
into
aaa
add byte [ebp + 0x320037d0], bh
iretd
aam 0x37
add byte [ebx - 0x27ffc82b], cl
salc
aaa
add bh, bh
salc
aaa
add al, dh
salc
aaa
add dh, bl
salc
aaa
add bh, bh
salc
aaa
add al, dh
salc
aaa
add byte [edx], ah
xlatb
aaa
add byte [edi + 0x400037d4], bl
xlatb
aaa
add byte [edi + edx*8], dh
aaa
add byte [edi - 0x29], cl
aaa
add byte [eax - 0x29], al
aaa
add byte [eax - 0x29], ah
aaa
add byte [eax - 0x29], ah
aaa
add byte [eax - 0x29], ah
aaa
add byte [edx - 0x29], ah
aaa
add byte [eax - 0x29], dh
aaa
add byte [eax - 0x29], dh
aaa
add byte [edx - 0x29], dh
aaa
add byte [eax - 0x29], dh
aaa
add byte [ebx - 0x29], bh
aaa
add byte [edi + edx*8 - 0x2d98ffc9], al
aaa
add byte [ecx], ch
fdiv dword [edi]
add byte [eax], dl
iretd
fbstp tbyte [edi]
add al, al
fbstp tbyte [edi]
add byte [0xc00037df], dl
fbstp tbyte [edi]
add byte [0xc00037df], ah
fbstp tbyte [edi]
add byte [0xc00037df], dh
fbstp tbyte [edi]
add byte [ebp - 0x21], al
aaa
add al, al
fbstp tbyte [edi]
add byte [ebx - 0x28ffc821], ah
fbstp tbyte [edi]
add cl, bh
loope 0x39caaa
add byte [eax], cl
loop 0x39caae
add cl, bh
loope 0x39cab2
add byte [0x3b0037e2], bl
loop 0x39caba
add byte [edx + 0x10037e1], bh
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add bh, ch
jecxz 0x39caca
add byte [ecx], al
add byte [eax], al
add al, ch
loope 0x39cad2
add ch, bl
fbstp tbyte [edi]
add ah, ch
fbstp tbyte [edi]
add byte [eax], cl
loopne 0x39cade
add byte [ebx], ch
loopne 0x39cae2
aaa
add byte [eax], cl
loopne 0x39cae6
aaa
add byte [ecx], bh
loopne 0x39caea
aaa
add byte [edi], bh
loopne 0x39caee
add byte [ebx - 0x17ffc81f], ch
aaa
add al, ch
loope 0x39caf6
add dh, ch
loope 0x39cafa
add byte [ebx], bh
loop 0x39cafe
add byte [edx - 0x3fffc821], dh
aaa
add al, al
fbstp tbyte [edi]
add al, dl
fbstp tbyte [edi]
aaa
add al, dl
fbstp tbyte [edi]
add al, dl
fbstp tbyte [edi]
add dl, dl
fbstp tbyte [edi]
aaa
add byte [eax], al
jecxz 0x39cb1a
aaa
add byte [eax], al
jecxz 0x39cb1e
aaa
add byte [eax], al
jecxz 0x39cb22
aaa
add byte [esi], al
jecxz 0x39cb26
aaa
add byte [eax], dl
jecxz 0x39cb2a
add byte [ecx], bl
jecxz 0x39cb2e
aaa
add bl, dh
fdiv qword [edi]
aaa
add byte [ebx - 0x1c3fffc9], dh
aaa
aaa
add al, al
jecxz 0x39cb3a
add byte [edx - 0x3fffc81d], bh
jecxz 0x39cb42
add dh, al
jecxz 0x39cb46
add byte [esi - 0x7cffc7e6], bl
sbb bh, byte [eax]
add byte [ebp - 0x56ffc7ee], ch
div dword [edi]
cmp byte [eax], al
test eax, 0xd90037f7
aaa
add cl, bl
adc eax, 0x15d90038
cmp byte [eax], al
fst dword [0x15f30038]
cmp byte [eax], al
adc eax, 0x176a0038
cmp byte [eax], al
push 0x17
cmp byte [eax], al
mov dh, 0x17
cmp byte [eax], al
jl 0x39cb4d
cmp byte [eax], al
add bl, byte [eax]
cmp byte [eax], al
bound edx, qword [edi]
cmp byte [eax], al
mov edx, 0xb1003815
adc eax, 365690936
cmp byte [eax], al
cdq
cmp byte [eax], al
mov cl, 0x15
cmp byte [eax], al
int3
sbb dword [eax], edi
add bl, al
adc al, 0x38
add byte [ecx + 0x15], dl
cmp byte [eax], al
in eax, 0x14
cmp byte [eax], al
xchg ecx, eax
or edi, dword [eax]
add byte [ebp - 0x2fffc7f3], ch
stc
aaa
add byte [eax - 0x5fffc801], ah
push dword [edi]
add cl, ah
push dword [edi]
add byte [eax - 0x3ffc800], dl
push dword [edi]
add bh, al
add byte [eax], bh
add byte [eax + 1], al
cmp byte [eax], al
mov al, 1
cmp byte [eax], al
push cs
add byte [eax], bh
add byte [eax - 0x6fffc7ff], dh
push dword [edi]
add cl, ah
add dword [eax], edi
add dl, ch
add dword [eax], edi
add byte [eax], cl
add bh, byte [eax]
add dh, dl
invalid