Function at 0x4270b0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x158
mov dword [esp + 0x10], 0x4b8b4d61
mov dword [esp + 0x14], 0x57a649b8
mov dword [esp + 0x18], 0x53b35598
mov dword [esp + 0x1c], 0x5fbf51ac
mov dword [esp + 0x20], 0x5b5a5d71
lea eax, [esp + 0x24]
mov dword [esp + 8], eax
mov dword [esp + 0x24], 0
mov dword [esp + 0x27], 0
mov eax, 0x59f8ef0a
mov edx, 0xa60710f5
mov esi, 0x4c0e21ea
nop
nop
mov dword [esp + 0xc], esi
mov dword [esp + 4], edx
movzx ebx, byte [esp + eax - 0x59f8eefa]
mov ecx, ebx
xor ecx, 0xe219f9c
mov edi, ebx
or edi, 0x63
and edi, ecx
mov edx, esi
and edx, 2
mov esi, dword [esp + 4]
xor esi, 1
mov ecx, eax
or ecx, 0xe219f9c
add ecx, esi
add ecx, edx
mov edx, edi
and edx, 0xffffff9c
mov esi, ebx
and esi, 0x42
or esi, edx
xor esi, 0x220949c
and ebx, 0xffffff9c
xor ebx, 0x23a094de
and ebx, esi
mov edx, dword [esp + 4]
or edx, 0xe219f9c
and edi, 0xffffffbd
or edi, ebx
mov esi, ecx
and esi, edx
xor edx, ecx
not edx
add edx, ecx
lea ecx, [edi + 0xc010b00]
sub edx, esi
xor edi, 0xf3fef4ff
and edi, edx
lea esi, [edx + edx]
not esi
add esi, edx
and esi, ecx
or esi, edi
mov dword [esp + 0x8c], esi
mov esi, dword [esp + 0xc]
mov edx, dword [esp + 4]
mov ecx, dword [esp + 0x8c]
add cl, 0xba
mov byte [esp + eax - 0x59f8eefa], cl
inc eax
dec edx
add esi, 0xfffffffe
cmp eax, 0x59f8ef25
jne 0x427110
lea edx, [esp + 0x10e]
lea eax, [esp + 0x10]
mov edi, edx
mov ecx, 5
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edi, [esp + 0x122]
xor ebx, ebx
xor ecx, ecx
mov eax, dword [esp + 8]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
lea edi, [esp + 0x78]
push edi
push 0
push 0
push 9
push edx
push 0
call dword [0x44ed8c]
mov esi, dword [esp + 0x78]
test esi, esi
jns 0x427215
mov eax, 0xffffffff
jmp 0x427218
lea eax, [esi + esi]
push eax
call fcn.00408c10
add esp, 4
push edi
push esi
mov dword [esp + 0x54], eax
push eax
push 9
lea eax, [esp + 0x11e]
push eax
push 0
call dword [0x44ed8c]
mov dword [esp + 0x10], 0xb8b1552
mov dword [esp + 0x14], 0xfad099f
mov dword [esp + 0x18], 0x39a0d9f
mov dword [esp + 0x1c], 0x70001a6
lea eax, [esp + 0x20]
mov dword [esp + 0x20], 0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + ebx + 0x10]
lea edx, [ebx + 0x38eaf9ad]
mov esi, 0x52
sub esi, ebx
xor esi, edx
and esi, ecx
xor esi, edx
mov dword [esp + 0x8c], esi
mov ecx, dword [esp + 0x8c]
mov edx, ecx
not edx
and edx, 0xbb
and ecx, 0x44
sub ecx, edx
mov byte [esp + ebx + 0x10], cl
mov ecx, ebx
and ecx, 1
xor ebx, 1
lea ebx, [ebx + ecx*2]
cmp ebx, 0x14
jb 0x427270
lea edi, [esp + 0xe4]
lea edx, [esp + 0x10]
mov ecx, 4
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0xf4]
xor edx, edx
xor ecx, ecx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 0x10], 0x13fb11da
mov dword [esp + 0x14], 0x1ff11def
mov dword [esp + 0x18], 0x1bea19ef
mov dword [esp + 0x1c], 0x27e925f6
mov dword [esp + 0x20], 0x23d621c5
mov dword [esp + 0x24], 0x2fde2dc1
mov dword [esp + 0x28], 0x2b2829d5
lea eax, [esp + 0x2c]
mov dword [esp + 0xc], eax
mov dword [esp + 0x2c], 0
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [esp + edx + 0x10]
mov dword [esp + 4], eax
mov esi, edx
and esi, 0xd
xor esi, 0xadb1e0ad
mov ecx, edx
and ecx, 0x12
sub ecx, esi
mov edi, ecx
xor edi, eax
mov esi, edi
and esi, 0x524e1ffd
mov eax, edi
and eax, 2
mov ebx, edi
or ebx, 2
imul ebx, eax
xor eax, 2
imul eax, esi
add ebx, eax
not ebx
add ebx, edi
lea eax, [ecx + ecx]
not eax
add eax, ecx
lea esi, [ebx + ebx]
not esi
add esi, ebx
or esi, eax
mov edi, esi
not edi
and esi, 2
mov eax, edi
and eax, 0xfffffffd
imul eax, esi
mov esi, edi
and esi, 2
or edi, 2
imul edi, esi
add edi, eax
mov eax, edi
not eax
and eax, ecx
not ecx
and edi, ecx
mov ecx, dword [esp + 4]
sub ecx, edi
add ecx, eax
mov dword [esp + 0x8c], ecx
mov ecx, dword [esp + 0x8c]
mov eax, 0x48
sub eax, ecx
mov esi, eax
or eax, 0xba
add eax, ecx
and esi, 0x45
sub eax, esi
inc al
mov byte [esp + edx + 0x10], al
mov eax, edx
and eax, 1
xor edx, 1
lea edx, [edx + eax*2]
cmp edx, 0x20
jb 0x427330
lea edi, [esp + 0x122]
lea eax, [esp + 0x10]
mov ecx, 7
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edi, [esp + 0x13e]
xor edx, edx
xor ecx, ecx
mov eax, dword [esp + 0xc]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 0x10], 0x7b037922
mov dword [esp + 0x14], 0x7f197d0f
mov dword [esp + 0x18], 0x7302710f
mov dword [esp + 0x1c], 0x77247516
mov dword [esp + 0x20], 0x8bca8922
lea eax, [esp + 0x24]
mov dword [esp + 0xc], eax
mov word [esp + 0x24], 0x8d8a
mov dword [esp + 0x26], 0
mov byte [esp + 0x2a], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 4], edx
movzx eax, byte [esp + ecx + 0x10]
mov edx, dword [esp + 4]
and edx, 0x1e
mov esi, ecx
xor esi, 0x1015c6f
add esi, edx
mov ebx, esi
mov edx, esi
not edx
mov edi, eax
or edi, edx
sub esi, eax
add esi, edi
xor ebx, eax
and edx, eax
and ebx, esi
and esi, edx
xor edx, ebx
or edx, esi
mov dword [esp + 0x8c], edx
mov eax, dword [esp + 0x8c]
mov edx, eax
not edx
lea eax, [eax + edx*2]
mov esi, 0xfe
sub esi, eax
and esi, 0xf6
lea eax, [esi + edx*2]
or edx, 0xf6
sub edx, eax
add dl, 0xf6
mov byte [esp + ecx + 0x10], dl
mov edx, dword [esp + 4]
inc ecx
add edx, 2
cmp ecx, 0x1b
jne case.default.0x427547
lea esi, [esp + 0x13e]
lea eax, [esp + 0x10]
mov ecx, 5
mov edi, esi
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edi, [esp + 0x152]
mov ecx, 1
mov eax, dword [esp + 0xc]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
lea eax, [esp + 0xe4]
mov dword [esp + 0xd8], eax
lea eax, [esp + 0x122]
mov dword [esp + 0xdc], eax
mov dword [esp + 0xe0], esi
mov esi, dword [esp + 0x4c]
mov eax, esi
add eax, 2
mov dword [esp + 0x84], eax
xor ecx, ecx
xor eax, eax
mov dword [esp + 0x64], 0
cmp ecx, 0xc
setne al
xor ecx, ecx
jmp dword [eax*4 + 0x44ad30]
jmp dword [0x44add8]
mov dword [esp + 0x68], ecx
mov ebx, dword [esp + ecx + 0xd8]
mov edi, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, edi
cmp word [ebx + edi + 2], 0
lea edi, [edi + 2]
jne 0x4275c0
mov dword [esp + 0x10], 0x33803592
mov dword [esp + 0x14], 0x2fad31a3
mov dword [esp + 0x18], 0x2bb82db1
mov dword [esp + 0x1c], 0x2785294a
mov dword [esp + 0x20], 0x23bb25aa
mov dword [esp + 0x24], 0x1fbb21ae
mov word [esp + 0x28], 0x1d1e
lea eax, [esp + 0x10]
mov byte [eax + 0x22], 0
mov dword [eax + 0x1e], 0
mov dword [eax + 0x1a], 0
mov eax, 0x1c6f4809
nop
movzx ecx, byte [esp + eax - 0x1c6f47f9]
mov edx, eax
and edx, ecx
add edx, edx
sub ecx, edx
add ecx, eax
mov dword [esp + 0x8c], ecx
mov ecx, dword [esp + 0x8c]
mov edx, ecx
xor edx, 0x3f
and ecx, 0x40
add ecx, ecx
sub ecx, edx
mov byte [esp + eax - 0x1c6f47f9], cl
inc eax
cmp eax, 0x1c6f482c
jne 0x427620
mov dword [esp + 0x70], edi
mov edx, edi
sar edx, 1
lea edi, [esp + 0xf4]
lea eax, [esp + 0x10]
mov ecx, 6
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [esp + 0x28]
lea edi, [esp + 0x10c]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, dword [esp + 0x78]
lea ecx, [edx + eax]
add ecx, 0xd
test ecx, ecx
mov dword [esp + 0xc], edx
jns 0x4276b0
mov eax, 0xffffffff
jmp 0x4276b9
add eax, edx
lea eax, [eax*2 + 0x1a]
push eax
call fcn.00408c10
add esp, 4
mov edi, eax
movzx ecx, word [esi]
test cx, cx
je 0x4276f1
mov edx, dword [esp + 0x84]
mov eax, edi
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 0x4276e0
mov word [eax], 0x5c
add eax, 2
movzx ecx, word [ebx]
test cx, cx
je 0x427721
lea edx, [ebx + 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 0x427710
mov word [eax], 0
movzx ecx, word [esp + 0xf4]
test cx, cx
je 0x427751
lea edx, [esp + 0xf6]
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x427740
mov word [eax], 0
lea eax, [esp + 0x74]
push 0x60
push 3
push 0x120089
push eax
push edi
call fcn.00441bc0
add esp, 0x14
not eax
shr eax, 0x1f
mov dword [esp + 4], ebx
jmp dword [eax*4 + 0x44ad38]
xor ebx, ebx
jmp dword [0x44ada8]
lea eax, [esp + 0x88]
push 0
push eax
push dword [esp + 0x7c]
call fcn.00442070
add esp, 0xc
not eax
shr eax, 0x1f
mov dword [esp + 8], 0
jmp dword [eax*4 + 0x44ad40]
mov esi, dword [esp + 0x88]
lea eax, [esi + 1]
push eax
call fcn.00408c10
add esp, 4
mov ebx, eax
push 0
push esi
push eax
push dword [esp + 0x80]
call fcn.004421f0
add esp, 0x10
not eax
shr eax, 0x1f
xor edx, edx
jmp dword [eax*4 + 0x44ad48]
mov eax, dword [esp + 0x88]
mov byte [ebx + eax], 0
push ebx
call fcn.00401db0
add esp, 4
xor ecx, ecx
test eax, eax
setne cl
xor edx, edx
jmp dword [ecx*4 + 0x44ad50]
mov dword [esp + 8], edx
jmp dword [0x44ada0]
mov dword [esp + 0x58], edi
mov eax, dword [esp + 0x74]
mov dword [esp + 0x50], eax
mov dword [esp + 0x10], 0x904882ca
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x10], 0x904882ca
mov eax, dword [esp + 0x10]
mov dword [esp + 0x10], 0x904882ca
mov edx, dword [esp + 0x10]
mov dword [esp + 0x10], 0x904882ca
mov edi, dword [esp + 0x10]
mov dword [esp + 0x10], 0x90488221
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x10], 0x90488222
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x10], 0x90488223
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x10], 0x90488224
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x10], 0x90488225
mov ecx, dword [esp + 0x10]
mov ecx, dword [0x44ed90]
test ecx, ecx
je 0x427910
add ebx, 0x35
movzx esi, bl
shl eax, 8
add eax, 0x3500
movzx eax, ax
or eax, esi
shl edx, 0x10
add edx, 0x350000
shl edi, 0x18
and edx, 0xff0000
or edx, eax
lea eax, [edi + edx]
add eax, 0x35000000
xor edx, edx
mov edi, dword [0x44ed94]
cmp dword [edi + edx*8], 0xa3c1f363
je 0x427900
inc edx
cmp ecx, edx
jne 0x4278f0
jmp 0x427910
mov ecx, dword [edi + edx*8 + 4]
cmp ecx, eax
jne 0x427d32
nop
nop
nop
nop
mov esi, dword [esp + 0x4c]
mov edi, dword [esp + 0x58]
mov ebx, dword [esp + 8]
jmp dword [0x44ada8]
push dword [esp + 0x50]
push 1
push dword [0x44ed98]
push ecx
call fcn.0043e300
add esp, 0x10
mov esi, dword [esp + 0x4c]
mov edi, dword [esp + 0x58]
mov ebx, dword [esp + 8]
jmp dword [0x44ada8]
mov dword [esp + 0x80], ebx
mov dword [esp + 0x58], edi
mov dword [esp + 0xc0], eax
push eax
call fcn.00402620
add esp, 4
mov dword [esp + 0x10], 0xc0ddf2cf
mov dword [esp + 0x14], 0xf3f6fcf6
mov dword [esp + 0x18], 0xc8c4cc06
mov dword [esp + 0x1c], 0xfbfef4fe
mov dword [esp + 0x20], 0xf8edf5f5
mov word [esp + 0x24], 0xccf1
mov byte [esp + 0x26], 0x56
mov word [esp + 0x27], 0
mov ecx, 1
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
lea esi, [ecx - 1]
movzx edi, byte [esp + ecx + 0xf]
mov edx, esi
or edx, 0x949bcccf
and esi, 0xe
add esi, edx
inc esi
xor esi, edi
mov dword [esp + 0x8c], esi
mov ebx, dword [esp + 0x8c]
add bl, 0x50
mov byte [esp + ecx + 0xf], bl
cmp ecx, 0x19
je 0x427e1b
movzx esi, byte [esp + ecx + 0x10]
mov edi, ecx
and edi, 0xf
add edx, edi
inc edx
xor edx, esi
mov dword [esp + 0x8c], edx
mov edx, dword [esp + 0x8c]
add dl, 0x50
mov byte [esp + ecx + 0x10], dl
add ecx, 2
jmp 0x427dc0
lea ecx, [esp + 0x10]
push ecx
push eax
call fcn.00402770
add esp, 8
mov edx, 0xffffffff
mov ecx, 0xfffffffd
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
add ecx, 3
cmp byte [eax + edx + 1], 0
lea edx, [edx + 1]
jne 0x427e40
shr ecx, 2
movzx esi, byte [eax + edx - 1]
cmp esi, 0x3d
je 0x427e5f
cmp esi, 0x2e
jne 0x427e60
dec ecx
movzx esi, byte [eax + edx - 2]
cmp esi, 0x3d
mov dword [esp + 0x50], edx
je 0x427e73
cmp esi, 0x2e
jne 0x427e74
dec ecx
mov dword [esp + 0x6c], eax
mov dword [esp + 0xbc], ecx
lea eax, [ecx + 1]
push eax
call fcn.00408c10
add esp, 4
mov dword [esp + 0x54], eax
cmp dword [esp + 0x50], 0
je 0x427f92
xor esi, esi
mov edi, 2
jmp 0x427ec4
lea eax, [edi + 4]
add edi, 2
mov esi, dword [esp + 8]
cmp edi, edx
mov edi, eax
jae 0x427f92
mov ebx, dword [esp + 0x6c]
movzx eax, byte [ebx + edi - 2]
push eax
call fcn.00419f40
add esp, 4
mov byte [esp + 8], al
movzx eax, byte [ebx + edi - 1]
push eax
call fcn.00419f40
mov edx, dword [esp + 0x54]
add esp, 4
mov ebx, eax
movzx ecx, byte [esp + 8]
shl cl, 2
shr al, 4
and al, 3
or al, cl
mov ecx, dword [esp + 0x54]
mov byte [ecx + esi], al
mov eax, esi
lea eax, [esi + 1]
mov dword [esp + 8], eax
cmp edi, edx
jae 0x427eb0
mov eax, dword [esp + 0x6c]
movzx eax, byte [eax + edi]
push eax
call fcn.00419f40
mov edx, dword [esp + 0x54]
add esp, 4
cmp al, 0x40
je 0x427eb0
shl bl, 4
mov ecx, eax
shr cl, 2
and cl, 0xf
or cl, bl
mov ebx, esi
lea edx, [esi + 2]
mov dword [esp + 8], edx
mov edx, dword [esp + 0x54]
mov byte [edx + esi + 1], cl
mov edx, dword [esp + 0x50]
lea ecx, [edi + 1]
cmp ecx, edx
jae 0x427eb0
mov ecx, dword [esp + 0x6c]
movzx ecx, byte [ecx + edi + 1]
push ecx
mov ebx, eax
call fcn.00419f40
mov edx, dword [esp + 0x54]
add esp, 4
cmp al, 0x40
je 0x427eb0
mov ecx, ebx
shl cl, 6
add al, cl
mov ecx, dword [esp + 0x54]
mov byte [ecx + esi + 2], al
add esi, 3
mov dword [esp + 8], esi
jmp 0x427eb0
mov eax, dword [esp + 0xbc]
add eax, 0xfffffffb
mov dword [esp + 0xc4], eax
mov eax, dword [esp + 0x54]
add eax, 5
mov dword [esp + 0xc8], eax
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], 0
push 0x3234ab19
push dword [0x44ed9c]
call fcn.00440d30
add esp, 8
lea ecx, [esp + 0x5c]
lea edx, [esp + 0xc4]
push ecx
push 0
push 0
push 0
push 0
push 0
push edx
call eax
xor ecx, ecx
test eax, eax
setne cl
mov ebx, dword [esp + 4]
jmp dword [ecx*4 + 0x44ad58]
mov dword [esp + 8], 0
mov eax, dword [case.0x427547.20]
mov edi, dword [esp + 0x58]
mov ebx, dword [esp + 0x80]
jmp case.0x427547.17
jmp dword [0x44ad64]
mov dword [esp + 0x10], 0xf3560ddf
mov dword [esp + 0x14], 0xf724f160
mov dword [esp + 0x18], 0xfb62f560
mov dword [esp + 0x1c], 0xfffef96c
mov dword [esp + 0x20], 0
mov eax, 0x1606137e
mov ecx, 0x69f9ec81
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax - 0x1606136e]
mov esi, eax
and esi, edx
add esi, esi
sub esi, edx
lea edi, [ecx + esi]
add edi, 0x80000000
and edi, eax
add edi, edi
mov esi, edi
xor esi, eax
and edi, ecx
add esi, edx
add edi, edi
sub esi, edi
mov dword [esp + 0x7c], esi
mov edx, dword [esp + 0x7c]
mov esi, edx
xor esi, 0x8d
mov edi, edx
and edi, 4
lea esi, [esi + edi*4]
add edx, edx
and edx, 0x1a
xor edx, 0x49
add edx, esi
add dl, 0xb8
mov byte [esp + eax - 0x1606136e], dl
inc eax
dec ecx
cmp eax, 0x16061392
jne 0x428060
lea edi, [esp + 0x8c]
lea eax, [esp + 0x10]
mov ecx, 4
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [esp + 0x20]
xor ecx, ecx
lea edi, [esp + 0x9c]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
cmp dword [esp + 0xc], 0xfffffff8
jge 0x4280f2
mov eax, 0xffffffff
jmp 0x4280f9
mov eax, dword [esp + 0x70]
add eax, 0x10
push eax
call fcn.00408c10
add esp, 4
movzx edx, word [ebx]
mov ecx, eax
test dx, dx
je 0x428131
lea edi, [ebx + 2]
mov ecx, eax
nop
nop
nop
nop
nop
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 0x428120
mov word [ecx], 0
movzx edx, word [esp + 0x8c]
test dx, dx
je 0x428161
lea edi, [esp + 0x8e]
nop
nop
nop
nop
nop
nop
mov word [ecx], dx
add ecx, 2
movzx edx, word [edi]
add edi, 2
test dx, dx
jne 0x428150
mov word [ecx], 0
mov ecx, dword [ebp + 8]
push dword [esp + 0x5c]
push dword [esp + 0x64]
push eax
call fcn.004095a0
jmp case.0x427547.12
mov ebx, dword [esp + 4]
mov word [eax], 0
mov ecx, dword [ebp + 8]
push dword [esp + 0x5c]
push dword [esp + 0x64]
push edi
call fcn.004095a0
jmp dword [0x44ad6c]
add ebx, 2
mov eax, dword [esp + 0x70]
add eax, 0x10
mov dword [esp + 8], eax
mov dword [esp + 0x10], 0xf3560ddf
mov dword [esp + 0x14], 0xf724f160
mov dword [esp + 0x18], 0xfb62f560
mov dword [esp + 0x1c], 0xfffef96c
mov dword [esp + 0x20], 0
mov ecx, 0x1606137e
mov edx, 0x69f9ec81
movzx eax, byte [esp + ecx - 0x1606136e]
mov esi, ecx
and esi, eax
add esi, esi
sub esi, eax
lea edi, [edx + esi]
add edi, 0x80000000
and edi, ecx
add edi, edi
mov esi, edi
xor esi, ecx
and edi, edx
add esi, eax
add edi, edi
sub esi, edi
mov dword [esp + 0x7c], esi
mov eax, dword [esp + 0x7c]
mov esi, eax
xor esi, 0x8d
mov edi, eax
and edi, 4
lea esi, [esi + edi*4]
add eax, eax
and eax, 0x1a
xor eax, 0x49
add eax, esi
add al, 0xb8
mov byte [esp + ecx - 0x1606136e], al
inc ecx
dec edx
cmp ecx, 0x16061392
jne 0x4281e0
lea edi, [esp + 0x8c]
lea eax, [esp + 0x10]
mov ecx, 4
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [esp + 0x20]
lea edi, [esp + 0x9c]
xor ecx, ecx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
cmp dword [esp + 0xc], 0xfffffff8
mov eax, dword [esp + 8]
jge 0x428274
mov eax, 0xffffffff
push eax
call fcn.00408c10
add esp, 4
mov edi, eax
mov eax, dword [esp + 4]
movzx ecx, word [eax]
mov eax, edi
test cx, cx
je 0x4282a1
mov eax, edi
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [ebx]
add ebx, 2
test cx, cx
jne 0x428290
mov word [eax], 0
movzx ecx, word [esp + 0x8c]
test cx, cx
je 0x428180
lea edx, [esp + 0x8e]
mov ebx, dword [esp + 4]
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 0x4282d0
jmp 0x428184
mov dword [esp + 8], eax
mov ebx, dword [esp + 0x80]
jmp dword [0x44ad70]
push edi
call fcn.00408c20
add esp, 4
push 0xaa39f1ac
push dword [0x44ed84]
call fcn.00440d30
add esp, 8
push dword [esp + 0x60]
call eax
mov eax, dword [case.0x427547.20]
mov edi, dword [esp + 0x58]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
jmp dword [0x44ad88]
jmp dword [0x44ad94]
push dword [esp + 0xc0]
call fcn.004028b0
add esp, 4
jmp dword [0x44ada0]
push dword [esp + 0x54]
call fcn.00408c20
add esp, 4
push dword [esp + 0x54]
call fcn.00408c20
add esp, 4
jmp dword [0x44ad98]