Function at 0x425982
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x44c
mov dword [esp + 0x4c], 0x7b8e798b
mov dword [esp + 0x50], 0x7f9f7d99
mov dword [esp + 0x54], 0x32c01ed
mov dword [esp + 0x58], 0x7fe05e1
mov dword [esp + 0x5c], 0xb0a09ed
mov word [esp + 0x60], 0
xor eax, eax
xor ecx, ecx
nop
nop
nop
mov edx, eax
and edx, 0x30
mov esi, ecx
xor esi, 0x1cdc9cb8
mov edi, edx
and edi, esi
xor esi, edx
lea edx, [esi + edi*2]
xor dl, byte [esp + ecx + 0x4c]
add dl, 0x40
mov byte [esp + ecx + 0x4c], dl
inc ecx
add eax, 2
cmp ecx, 0x16
jne case.default.0x4255eb
mov dword [esp + 0x3c], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], 0
lea ebp, [esp + 0x4c]
lea esi, [esp + 0x30]
mov ecx, esi
push ebp
call fcn.00439290
mov ecx, esi
push 0x410
call fcn.00439520
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x444fc0]
xor ebx, ebx
jmp 0x425a99
mov dword [esp + 0x4c], 0x7ba0694a
mov dword [esp + 0x50], 0x71795c47
mov dword [esp + 0x54], 0x7d46425e
mov dword [esp + 0x58], 0x764d4762
mov dword [esp + 0x5c], 0x41689369
mov dword [esp + 0x60], 0x4e6f976a
mov dword [esp + 0x64], 0x536a8f75
mov dword [esp + 0x68], 0x578c5574
mov dword [esp + 0x6c], 0x8773777d
mov dword [esp + 0x70], 0x5f809476
mov dword [esp + 0x74], 0x3a69807e
mov word [esp + 0x78], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0x57
xor cl, byte [esp + eax + 0x4c]
add cl, 0x48
mov byte [esp + eax + 0x4c], cl
inc eax
cmp eax, 0x2e
jne case.default.0x425698
lea eax, [esp + 0x40]
lea ecx, [esp + 0x30]
push 0
push 0x2b
push ebp
push eax
call fcn.00439ac0
mov esi, dword [esp + 0x40]
mov edi, dword [esp + 0x44]
xor eax, eax
cmp esi, edi
sete al
jmp dword [eax*4 + 0x444fc8]
mov eax, edi
sub eax, esi
sar eax, 2
imul eax, eax, 0x421
push eax
call fcn.004084d0
add esp, 4
mov ebx, eax
mov dword [esp + 0xc], 0
xor eax, eax
mov dword [esp + 0x2c], edi
cmp esi, edi
setne al
mov edi, ebx
mov dword [esp + 0x28], ebx
jmp dword [eax*4 + 0x444fd0]
mov eax, dword [esp + 0xc]
and al, 1
movzx eax, al
jmp dword [eax*4 + 0x444fe8]
jmp dword [0x445058]
add esi, 4
xor eax, eax
cmp esi, dword [esp + 0x2c]
setne al
jmp dword [eax*4 + 0x444fd0]
mov dword [esp + 4], esi
mov esi, dword [esi]
push 0x400
push 0
push ebp
call fcn.00408680
add esp, 0xc
lea eax, [esp + 8]
lea ecx, [esp + 0x30]
push eax
push 0x400
push ebp
push esi
call fcn.00439a00
cmp eax, 0xc0000000
setae al
cmp dword [esp + 8], 0
sete cl
or cl, al
movzx eax, cl
jmp dword [eax*4 + 0x444ff0]
mov eax, 1
mov esi, dword [esp + 4]
jmp dword [eax*4 + 0x444ff8]
xor eax, eax
mov esi, dword [esp + 4]
jmp dword [eax*4 + 0x444ff8]
mov byte [esp + 0x44b], 0
movzx eax, byte [esp + 0x4c]
xor edx, edx
test al, al
je 0x4257a1
mov ecx, ebp
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp al, 0x2e
je 0x42579f
movzx eax, byte [ecx + 1]
inc ecx
test al, al
jne 0x425790
jmp 0x4257a1
mov edx, ecx
xor eax, eax
test edx, edx
setne al
jmp dword [eax*4 + 0x445000]
movzx eax, byte [edx + 1]
inc edx
xor ebx, ebx
test al, al
mov dword [esp + 0x1c], edx
je 0x4257d1
mov ecx, edx
cmp al, 0x2e
je 0x4257cf
movzx eax, byte [ecx + 1]
inc ecx
test al, al
jne 0x4257c0
jmp 0x4257d1
mov ebx, ecx
xor eax, eax
test ebx, ebx
setne al
mov edx, dword [esp + 0x1c]
jmp dword [eax*4 + 0x445008]
mov esi, ebx
sub esi, edx
mov eax, esi
and eax, 0xfffffffc
mov ecx, esi
and ecx, 3
mov dword [esp + 0x10], esi
mov ebp, esi
or ebp, 3
imul ebp, ecx
xor ecx, 3
imul ecx, eax
add ebp, ecx
shr ebp, 2
movzx eax, byte [ebx - 1]
cmp eax, 0x3d
mov esi, edx
je 0x425818
cmp eax, 0x2e
jne 0x425819
dec ebp
mov eax, dword [esp + 0x10]
movzx eax, byte [esi + eax - 2]
cmp eax, 0x3d
mov dword [esp + 0x18], edi
je 0x425830
cmp eax, 0x2e
jne 0x425831
dec ebp
mov dword [esp + 0x24], ebp
lea eax, [ebp + 1]
push eax
call fcn.004084d0
add esp, 4
mov dword [esp + 0x14], eax
cmp ebx, esi
mov ebp, dword [esp + 0x10]
je 0x42593c
xor edx, edx
mov esi, 2
jmp 0x425878
mov ecx, ebp
mov ebp, ebx
lea eax, [esi + 4]
add esi, 2
mov edx, ebp
cmp esi, ecx
mov esi, eax
mov ebp, ecx
jae 0x42593c
mov dword [esp + 0x20], edx
mov edi, dword [esp + 0x1c]
movzx eax, byte [edi + esi - 2]
push eax
call fcn.0041ca70
add esp, 4
mov ebx, eax
movzx eax, byte [edi + esi - 1]
push eax
call fcn.0041ca70
mov edx, dword [esp + 0x24]
add esp, 4
shl bl, 2
mov ah, al
shr ah, 4
and ah, 3
or ah, bl
lea ebx, [edx + 1]
mov ecx, dword [esp + 0x14]
mov byte [ecx + edx], ah
cmp esi, ebp
jae 0x425860
mov byte [esp + 3], al
movzx eax, byte [edi + esi]
push eax
call fcn.0041ca70
mov ecx, dword [esp + 0x14]
add esp, 4
cmp al, 0x40
mov ebp, ebx
je 0x425864
movzx edx, byte [esp + 3]
shl dl, 4
mov ebx, eax
shr al, 2
and al, 0xf
or al, dl
mov edi, dword [esp + 0x20]
lea ebp, [edi + 2]
mov edx, dword [esp + 0x14]
mov byte [edx + edi + 1], al
lea eax, [esi + 1]
cmp eax, ecx
jae 0x425864
mov eax, dword [esp + 0x1c]
movzx eax, byte [eax + esi + 1]
push eax
call fcn.0041ca70
mov ecx, dword [esp + 0x14]
add esp, 4
cmp al, 0x40
je 0x425864
shl bl, 6
add al, bl
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x20]
mov byte [edx + edi + 2], al
add edi, 3
mov ebp, edi
jmp 0x425864
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x14]
mov byte [esi + eax], 0
push esi
call fcn.00401000
add esp, 4
mov ebx, eax
jmp dword [0x445010]
jmp dword [0x44501c]
mov edi, dword [esp + 0x18]
lea ebp, [esp + 0x4c]
mov esi, dword [esp + 4]
push ebx
call fcn.00401be0
add esp, 4
mov eax, dword [case.0x425698.11]
mov ebx, dword [esp + 0x28]
nop
nop
nop
jmp eax
mov dword [esp + 8], 0xbedf2928
mov esi, 0xa3
mov edx, 0x1c
lea ebp, [esp + 0x4c]
nop
nop
nop
nop
nop
nop
nop
nop
mov edi, edx
and edi, 0x12
mov ecx, esi
and ecx, 0xa5
or ecx, edi
xor cl, byte [esp + esi - 0x9b]
xor cl, 0x12
add cl, 0xe8
mov byte [esp + esi - 0x9b], cl
inc esi
dec edx
cmp esi, 0xa7
jne case.default.0x4259e2
lea ecx, [esp + 8]
push ecx
push eax
call fcn.004018c0
add esp, 8
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x445030]
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 4]
jmp 0x425a29
movzx ecx, byte [eax]
test cl, cl
mov edi, dword [esp + 0x18]
je 0x425a1d
inc eax
mov esi, dword [esp + 4]
nop
nop
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 0x425a10
jmp 0x425a21
mov esi, dword [esp + 4]
mov word [edi], 0x203a
add edi, 2
movzx eax, byte [esp + 0x4c]
test al, al
je 0x425a4b
lea ecx, [esp + 0x4d]
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 0x425a40
mov byte [edi], 0xa
inc edi
mov al, 1
mov dword [esp + 0xc], eax
jmp 0x42596b
push ebx
call fcn.00401970
add esp, 4
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x445028]
push esi
call fcn.004084e0
add esp, 4
push esi
call fcn.004084e0
add esp, 4
jmp dword [0x445020]
xor ebx, ebx
test esi, esi
jne 0x425ab5
jmp 0x425a99
mov ebp, edi
jmp dword [0x44504c]
lea ecx, [esp + 0x30]
call fcn.00439670
mov eax, ebx
add esp, 0x44c
pop esi
pop edi
pop ebx
pop ebp
ret
jmp dword [0x445060]
cmp esi, edi
je 0x425a99
push esi
call fcn.004084e0
add esp, 4
jmp 0x425a99
mov ebx, dword [esp + 0xc]
and bl, 1
mov esi, dword [esp + 0x40]
mov edi, dword [esp + 0x44]
test esi, esi
jne 0x425ab5
jmp 0x425a99
mov byte [edi], 0
mov dword [esp + 0x4c], 0x17c7b2b
mov dword [esp + 0x50], 0x5710c07
mov dword [esp + 0x54], 0x67a7c7b
mov dword [esp + 0x58], 0x7c0c64b9
mov dword [esp + 0x5c], 0x69b3767b
mov dword [esp + 0x60], 0x6f657471
mov dword [esp + 0x64], 0x1d10ad11
mov dword [esp + 0x68], 0x8712
mov eax, 0xaee6c23a
mov ecx, 0x51193dc5
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + eax + 0x51193e12]
mov edi, ecx
and edi, 0x5108391a
mov edx, eax
and edx, 0x80260065
or edx, edi
xor edx, esi
xor edx, 0x803704e5
inc edx
mov esi, edx
and esi, 0x51
add esi, esi
xor edx, 0x2e
sub edx, esi
add dl, 2
mov byte [esp + eax + 0x51193e12], dl
inc eax
dec ecx
cmp eax, 0xaee6c25a
jne 0x425b30
mov edi, ebp
mov eax, ebp
xor eax, ebx
lea edx, [esp + 0x4c]
mov ecx, dword [esp + 0x460]
push eax
push ebx
push edx
call fcn.004094e0
mov byte [edi], 0
mov dword [esp + 0x4c], 0x17c7b2b
mov dword [esp + 0x50], 0x5710c07
mov dword [esp + 0x54], 0x67a7c7b
mov dword [esp + 0x58], 0x7c0c64b9
mov dword [esp + 0x5c], 0x69b3767b
mov dword [esp + 0x60], 0x6f657471
mov dword [esp + 0x64], 0x1d10ad11
mov dword [esp + 0x68], 0x8712
mov eax, 0xaee6c23a
mov ecx, 0x51193dc5
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + eax + 0x51193e12]
mov edi, ecx
and edi, 0x5108391a
mov edx, eax
and edx, 0x80260065
or edx, edi
xor edx, esi
xor edx, 0x803704e5
inc edx
mov esi, edx
and esi, 0x51
add esi, esi
xor edx, 0x2e
sub edx, esi
add dl, 2
mov byte [esp + eax + 0x51193e12], dl
inc eax
dec ecx
cmp eax, 0xaee6c25a
jne 0x425be0
mov edi, ebp
mov eax, ebp
sub eax, ebx
lea edx, [esp + 0x4c]
mov ecx, dword [esp + 0x460]
push eax
push ebx
push edx
call fcn.004094e0
jmp dword [0x445050]
mov dword [esp + 0xc], eax
jmp dword [0x445058]
push ebx
call fcn.004084e0
add esp, 4
push ebx
call fcn.004084e0
add esp, 4
jmp dword [0x445068]
mov dword [esp + 8], 0xf1590fca
mov dword [esp + 0xc], 0xf557f361
mov dword [esp + 0x10], 0xf96af759
mov dword [esp + 0x14], 0xfdfcfb5e
lea edx, [esp + 0x18]
mov word [esp + 0x18], 0
xor eax, eax
nop
nop
nop
nop
nop
movzx edi, byte [esp + eax + 8]
lea esi, [eax + 0x27c48cfe]
mov ecx, edi
and ecx, 0x74
mov ebx, edi
xor ebx, 0x8e177174
or edi, 0x8b
and edi, ebx
lea ebx, [eax*2 + 0x4f8919fc]
neg ebx
add ebx, eax
add ebx, 0x7d
and ebx, 0x74
mov ebp, esi
xor ebp, 0x74
or esi, 0x8b
and esi, ebp
or esi, ebx
xor ecx, edi
and edi, 0x74
xor ecx, 0x74
or ecx, edi
xor ecx, esi
add cl, 0x10
mov byte [esp + eax + 8], cl
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
cmp eax, 0x12
jb 0x427040
lea ebp, [esp + 0xaa]
lea eax, [esp + 8]
mov edi, ebp
mov ecx, 4
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edi, [esp + 0xba]
xor ebx, ebx
xor ecx, ecx
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
mov dword [esp + 8], 0x682e9651
mov dword [esp + 0xc], 0x6cc86ada
mov dword [esp + 0x10], 0x60dd6ed2
mov dword [esp + 0x14], 0x64a062c5
mov dword [esp + 0x18], 0x78d966c4
mov dword [esp + 0x1c], 0x7cc97ad8
mov dword [esp + 0x20], 0x707f7ef4
lea esi, [esp + 0x24]
mov word [esp + 0x24], 0
nop
nop
mov eax, ebx
add al, 0x7d
xor al, byte [esp + ebx + 8]
add al, 0x18
mov byte [esp + ebx + 8], al
inc ebx
cmp ebx, 0x1e
jne 0x427110
lea edx, [esp + 0xd0]
lea eax, [esp + 8]
mov ecx, 7
mov edi, edx
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edi, [esp + 0xec]
xor ecx, ecx
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
mov dword [esp + 8], 0x7ee47c3f
mov dword [esp + 0xc], 0x721270ec
mov dword [esp + 0x10], 0x76e774ec
mov dword [esp + 0x14], 0x6a196813
mov dword [esp + 0x18], 0x6e2f6c1f
lea ebx, [esp + 0x1c]
mov dword [esp + 0x1c], 0x606f
mov ecx, 0x42da2a63
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + ecx - 0x42da2a5b]
xor esi, ecx
mov edi, esi
mov eax, esi
xor eax, 0xe7
add eax, esi
and esi, 0xe7
and edi, 0x18
sub eax, edi
add eax, esi
inc al
mov byte [esp + ecx - 0x42da2a5b], al
inc ecx
cmp ecx, 0x42da2a7b
jne 0x427190
lea esi, [esp + 0xba]
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 + 0xce]
mov ecx, 1
xchg esi, ebx
rep movsw word es:[edi], word [esi]
xchg esi, ebx
mov dword [esp + 0x94], ebp
mov dword [esp + 0x98], edx
mov dword [esp + 0x9c], esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
lea eax, [esp + 0x24]
mov dword [esp], eax
lea edx, [esp + 0x18]
mov dword [esp + 8], 0xf1590fca
mov dword [esp + 0xc], 0xf557f361
mov dword [esp + 0x10], 0xf96af759
mov dword [esp + 0x14], 0xfdfcfb5e
mov word [esp + 0x18], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esp + eax + 8]
lea edi, [eax + 0x27c48cfe]
mov ecx, ebx
and ecx, 0x74
mov ebp, ebx
xor ebp, 0x8e177174
or ebx, 0x8b
and ebx, ebp
lea ebp, [eax*2 + 0x4f8919fc]
neg ebp
add ebp, eax
add ebp, 0x7d
and ebp, 0x74
mov esi, edi
xor esi, 0x74
or edi, 0x8b
and edi, esi
or edi, ebp
xor ecx, ebx
and ebx, 0x74
xor ecx, 0x74
or ecx, ebx
xor ecx, edi
add cl, 0x10
mov byte [esp + eax + 8], cl
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
cmp eax, 0x12
jb 0x427250
lea ebp, [esp + 0xaa]
lea eax, [esp + 8]
mov edi, ebp
mov ecx, 4
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edi, [esp + 0xba]
xor ebx, ebx
xor ecx, ecx
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
mov dword [esp + 8], 0x682e9651
mov dword [esp + 0xc], 0x6cc86ada
mov dword [esp + 0x10], 0x60dd6ed2
mov dword [esp + 0x14], 0x64a062c5
mov dword [esp + 0x18], 0x78d966c4
mov dword [esp + 0x1c], 0x7cc97ad8
mov dword [esp + 0x20], 0x707f7ef4
mov word [esp + 0x24], 0
nop
nop
nop
nop
nop
nop
mov eax, ebx
add al, 0x7d
xor al, byte [esp + ebx + 8]
add al, 0x18
mov byte [esp + ebx + 8], al
inc ebx
cmp ebx, 0x1e
jne 0x427320
lea edx, [esp + 0xd0]
lea eax, [esp + 8]
mov edi, edx
mov ecx, 7
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edi, [esp + 0xec]
xor ecx, ecx
mov eax, dword [esp]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 8], 0x7ee47c3f
mov dword [esp + 0xc], 0x721270ec
mov dword [esp + 0x10], 0x76e774ec
mov dword [esp + 0x14], 0x6a196813
mov dword [esp + 0x18], 0x6e2f6c1f
lea ebx, [esp + 0x1c]
mov dword [esp + 0x1c], 0x606f
mov ecx, 0x42da2a63
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + ecx - 0x42da2a5b]
xor esi, ecx
mov edi, esi
mov eax, esi
xor eax, 0xe7
add eax, esi
and esi, 0xe7
and edi, 0x18
sub eax, edi
add eax, esi
inc al
mov byte [esp + ecx - 0x42da2a5b], al
inc ecx
cmp ecx, 0x42da2a7b
jne 0x4273a0
lea esi, [esp + 0xba]
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 + 0xce]
mov ecx, 1
xchg esi, ebx
rep movsw word es:[edi], word [esi]
xchg esi, ebx
mov dword [esp + 0x94], ebp
mov dword [esp + 0x98], edx
mov dword [esp + 0x9c], esi
jmp dword [0x445284]
xor ecx, ecx
lea edx, [esp + 0xa]
lea eax, [esp + 0xa]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x38]
lea esi, [eax + 2]
lea ebx, [esp + 0xa]
xor eax, eax
mov dword [esp + 0x64], 0
cmp ecx, 0xc
setne al
xor ecx, ecx
mov dword [esp + 0x6c], esi
jmp dword [eax*4 + 0x445288]
jmp dword [0x445290]
push dword [esp + 0x38]
call fcn.004084e0
add esp, 4
mov eax, dword [esp + 0x64]
and al, 1
mov dword [esp + 0xa4], edx
mov dword [esp + 0x84], ecx
mov ecx, dword [esp + ecx + 0x94]
mov eax, 0xfffffffe
mov edx, 0xfffffe00
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
add edx, 0x200
cmp word [ecx + eax + 2], 0
lea eax, [eax + 2]
jne 0x4274e0
mov dword [esp + 0xa0], edx
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x70], eax
mov edx, eax
sar edx, 1
mov eax, dword [esp + 0x58]
lea ecx, [edx + eax]
mov dword [esp + 0x74], edx
add edx, eax
add edx, 0xd
lea eax, [ecx*2 + 0x1a]
test edx, edx
jns 0x427524
mov eax, 0xffffffff
push eax
call fcn.004084d0
add esp, 4
mov edx, eax
mov eax, dword [esp + 0x38]
movzx ecx, word [eax]
mov dword [esp + 0x78], edx
mov eax, edx
test cx, cx
je 0x427561
mov eax, dword [esp + 0x78]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [esi]
add esi, 2
test cx, cx
jne 0x427550
mov word [eax], 0x5c
mov dword [esp + 8], 0x470a4518
mov dword [esp + 0xc], 0x4be949e7
mov dword [esp + 0x10], 0x4fe24ded
mov dword [esp + 0x14], 0x53015130
mov dword [esp + 0x18], 0x57f755e0
mov dword [esp + 0x1c], 0x5bff59ec
mov word [esp + 0x20], 0x5d5c
mov ecx, 0x16640264
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx - 0x1664025c]
mov esi, ecx
or esi, edx
lea edi, [ecx - 0x16640200]
and edi, edx
sub esi, edi
mov edi, 0x20
sub edi, esi
mov edx, esi
not edx
and edx, 1
or edi, 1
sub edx, edi
mov byte [esp + ecx - 0x1664025c], dl
inc ecx
cmp ecx, 0x1664027e
jne 0x4275b0
add eax, 2
mov edx, dword [esp + 0x3c]
movzx ecx, word [edx]
test cx, cx
je 0x427611
add edx, 2
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x427600
mov word [eax], 0
movzx ecx, word [esp + 8]
test cx, cx
je 0x427641
mov edx, 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 0x427630
mov word [eax], 0
lea eax, [esp + 0x54]
push 0x60
push 3
push 0x120089
push eax
push dword [esp + 0x88]
call fcn.0043d190
add esp, 0x14
not eax
shr eax, 0x1f
mov dword [esp], 0
jmp dword [eax*4 + 0x445298]
lea eax, [esp + 0x90]
push 0
push eax
push dword [esp + 0x5c]
call fcn.0043d510
add esp, 0xc
not eax
shr eax, 0x1f
xor esi, esi
jmp dword [eax*4 + 0x4452a0]
mov esi, dword [esp + 0x90]
lea eax, [esi + 1]
push eax
call fcn.004084d0
add esp, 4
mov edi, eax
push 0
push esi
push eax
push dword [esp + 0x60]
call fcn.0043d600
add esp, 0x10
not eax
shr eax, 0x1f
xor esi, esi
jmp dword [eax*4 + 0x4452a8]
mov eax, dword [esp + 0x90]
mov byte [edi + eax], 0
push edi
call fcn.00401000
add esp, 4
xor ecx, ecx
mov dword [esp + 0x60], eax
test eax, eax
setne cl
xor esi, esi
jmp dword [ecx*4 + 0x4452b0]
jmp dword [0x445310]
mov dword [esp + 0x7c], edi
mov dword [esp + 0x80], ebx
jmp dword [0x4452b8]
movzx esi, byte [esp]
jmp dword [0x445328]
mov dword [esp], esi
jmp dword [0x44531c]
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4452c8]
xor esi, esi
mov edi, dword [esp + 0x7c]
jmp dword [0x445308]
mov edi, dword [esp + 0x80]
jmp dword [0x4452d4]
push dword [esp + 0x60]
call fcn.00401970
add esp, 4
mov dword [esp + 8], 0x1c610e13
mov dword [esp + 0xc], 0x37323832
mov dword [esp + 0x10], 0x2428206a
mov dword [esp + 0x14], 0x3f3a303a
mov dword [esp + 0x18], 0x24512929
mov word [esp + 0x1c], 0x2835
mov byte [esp + 0x1e], 0x92
mov word [esp + 0x1f], 0
mov ecx, 0x6394085c
mov edx, 0x1c6bf7a3
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + ecx - 0x63940854]
lea edi, [esi + esi]
not edi
add edi, esi
and edi, 0x34be5626
and esi, 0xffffffd9
or esi, edi
mov edi, edx
and edi, 0x142a5626
mov ebx, ecx
and ebx, 0x43000859
or ebx, edi
mov edi, esi
and edi, ebx
add ebx, esi
add edi, edi
sub ebx, edi
add bl, 0x20
mov byte [esp + ecx - 0x63940854], bl
inc ecx
dec edx
cmp ecx, 0x63940875
jne 0x427eb0
lea ecx, [esp + 8]
push ecx
push eax
call fcn.00401ab0
add esp, 8
mov ecx, 0xffffffff
nop
nop
nop
cmp byte [eax + ecx + 1], 0
lea ecx, [ecx + 1]
jne 0x427f10
mov dword [esp], ecx
mov edx, dword [esp]
and edx, 0xfffffffc
mov ecx, dword [esp]
and ecx, 3
mov esi, dword [esp]
or esi, 3
imul esi, ecx
xor ecx, 3
imul ecx, edx
mov edx, dword [esp]
add esi, ecx
shr esi, 2
movzx ecx, byte [eax + edx - 1]
cmp ecx, 0x3d
je 0x427f4f
cmp ecx, 0x2e
jne 0x427f50
dec esi
movzx ecx, byte [eax + edx - 2]
cmp ecx, 0x3d
mov dword [esp + 0x40], eax
je 0x427f63
cmp ecx, 0x2e
jne 0x427f64
dec esi
mov dword [esp + 0x5c], esi
lea eax, [esi + 1]
push eax
call fcn.004084d0
add esp, 4
mov dword [esp + 4], eax
cmp dword [esp], 0
je 0x42806e
xor edi, edi
mov esi, 2
jmp 0x427fa2
lea eax, [esi + 4]
add esi, 2
mov edi, ebx
cmp esi, edx
mov esi, eax
jae 0x42806e
mov ebp, dword [esp + 0x40]
movzx eax, byte [ebp + esi - 2]
push eax
call fcn.0041ca70
add esp, 4
mov ebx, eax
movzx eax, byte [ebp + esi - 1]
push eax
call fcn.0041ca70
add esp, 4
shl bl, 2
mov ecx, eax
shr cl, 4
and cl, 3
or cl, bl
lea ebx, [edi + 1]
mov edx, dword [esp + 4]
mov dword [esp + 0x48], edi
mov byte [edx + edi], cl
mov edx, dword [esp]
cmp esi, edx
jae 0x427f90
mov byte [esp + 0x44], al
movzx eax, byte [ebp + esi]
push eax
call fcn.0041ca70
mov edx, dword [esp + 4]
add esp, 4
cmp al, 0x40
je 0x427f90
mov ch, al
movzx eax, byte [esp + 0x44]
shl al, 4
mov cl, ch
shr cl, 2
and cl, 0xf
or cl, al
mov edi, dword [esp + 0x48]
lea ebx, [edi + 2]
mov eax, dword [esp + 4]
mov byte [eax + edi + 1], cl
lea eax, [esi + 1]
cmp eax, edx
jae 0x427f90
mov eax, dword [esp + 0x40]
movzx eax, byte [eax + esi + 1]
push eax
mov byte [esp + 0x48], ch
call fcn.0041ca70
movzx ecx, byte [esp + 0x48]
mov edx, dword [esp + 4]
add esp, 4
cmp al, 0x40
je 0x427f90
shl cl, 6
add al, cl
mov ecx, dword [esp + 4]
mov ebx, dword [esp + 0x48]
mov byte [ecx + ebx + 2], al
add ebx, 3
jmp 0x427f90
mov eax, dword [esp + 0x5c]
add eax, 0xfffffffb
mov dword [esp + 0x88], eax
mov eax, dword [esp + 4]
add eax, 5
mov dword [esp + 0x8c], eax
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 0
push 0x8b2600cb
push dword [0x449dd4]
call fcn.0043c800
add esp, 8
lea ecx, [esp + 0x4c]
lea edx, [esp + 0x88]
push ecx
push 0
push 0
push 0
push 0
push 0
push edx
call eax
jmp dword [0x4452c0]
push dword [esp + 0x60]
call fcn.00401970
add esp, 4
mov dword [esp + 8], 0x1c610e13
mov dword [esp + 0xc], 0x37323832
mov dword [esp + 0x10], 0x2428206a
mov dword [esp + 0x14], 0x3f3a303a
mov dword [esp + 0x18], 0x24512929
mov word [esp + 0x1c], 0x2835
mov byte [esp + 0x1e], 0x92
mov word [esp + 0x1f], 0
mov ecx, 0x6394085c
mov edx, 0x1c6bf7a3
nop
nop
nop
movzx esi, byte [esp + ecx - 0x63940854]
lea edi, [esi + esi]
not edi
add edi, esi
and edi, 0x34be5626
and esi, 0xffffffd9
or esi, edi
mov edi, edx
and edi, 0x142a5626
mov ebx, ecx
and ebx, 0x43000859
or ebx, edi
mov edi, esi
and edi, ebx
add ebx, esi
add edi, edi
sub ebx, edi
add bl, 0x20
mov byte [esp + ecx - 0x63940854], bl
inc ecx
dec edx
cmp ecx, 0x63940875
jne 0x428120
lea ecx, [esp + 8]
push ecx
push eax
call fcn.00401ab0
add esp, 8
mov ecx, 0xffffffff
nop
nop
nop
cmp byte [eax + ecx + 1], 0
lea ecx, [ecx + 1]
jne 0x428180
mov dword [esp + 4], ecx
mov edx, dword [esp + 4]
and edx, 0xfffffffc
mov ecx, dword [esp + 4]
and ecx, 3
mov esi, dword [esp + 4]
or esi, 3
imul esi, ecx
xor ecx, 3
imul ecx, edx
mov edx, dword [esp + 4]
add esi, ecx
shr esi, 2
movzx ecx, byte [eax + edx - 1]
cmp ecx, 0x3d
je 0x4281c4
cmp ecx, 0x2e
jne 0x4281c5
dec esi
movzx ecx, byte [eax + edx - 2]
cmp ecx, 0x3d
mov dword [esp + 0x48], eax
je 0x4281d8
cmp ecx, 0x2e
jne 0x4281d9
dec esi
mov dword [esp + 0x5c], esi
mov eax, esi
xor eax, 1
push eax
call fcn.004084d0
add esp, 4
mov dword [esp + 0x40], eax
cmp dword [esp + 4], 0
je 0x4282e6
xor edi, edi
mov esi, 2
jmp 0x428223
lea eax, [esi + 4]
add esi, 2
mov edi, dword [esp]
cmp esi, ecx
mov esi, eax
jae 0x4282e6
mov ebp, dword [esp + 0x48]
movzx eax, byte [ebp + esi - 2]
push eax
call fcn.0041ca70
add esp, 4
mov ebx, eax
movzx eax, byte [ebp + esi - 1]
push eax
call fcn.0041ca70
mov ecx, dword [esp + 8]
add esp, 4
mov bh, al
shl bl, 2
shr al, 4
and al, 3
or al, bl
lea edx, [edi + 1]
mov dword [esp], edx
mov edx, dword [esp + 0x40]
mov dword [esp + 0x44], edi
mov byte [edx + edi], al
cmp esi, ecx
jae 0x428210
mov eax, dword [esp + 0x48]
movzx eax, byte [eax + esi]
push eax
call fcn.0041ca70
mov ecx, dword [esp + 8]
add esp, 4
cmp al, 0x40
je 0x428210
mov bl, al
shl bh, 4
shr al, 2
and al, 0xf
or al, bh
mov edi, dword [esp + 0x44]
lea edx, [edi + 2]
mov dword [esp], edx
mov edx, dword [esp + 0x40]
mov byte [edx + edi + 1], al
lea eax, [esi + 1]
cmp eax, ecx
jae 0x428210
mov eax, dword [esp + 0x48]
movzx eax, byte [eax + esi + 1]
push eax
call fcn.0041ca70
mov ecx, dword [esp + 8]
add esp, 4
cmp al, 0x40
je 0x428210
shl bl, 6
add al, bl
mov edx, dword [esp + 0x40]
mov edi, dword [esp + 0x44]
mov byte [edx + edi + 2], al
add edi, 3
mov dword [esp], edi
jmp 0x428210
mov eax, dword [esp + 0x5c]
sar eax, 5
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x40]
add eax, 5
mov dword [esp + 0x8c], eax
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 0
push 0x8b2600cb
push dword [0x449dd4]
call fcn.0043c800
add esp, 8
lea ecx, [esp + 0x4c]
lea edx, [esp + 0x88]
push ecx
push 0
push 0
push 0
push 0
push 0
push edx
call eax
jmp case.0x4259e2.161
push ebp
inc edx
add cl, bh
push ebp
inc edx
add byte [edi - 0x76ffbdaa], bl
push esi
inc edx
add byte [ecx - 0x28ffbda6], cl
push esi
inc edx
add byte [ecx - 0x28ffbda6], cl
push esi
inc edx
add byte [ebx], al
push edi
inc edx
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add bh, dl
push esi
inc edx
add bh, ah
push esi
inc edx
add byte [ecx + 0x4a00425a], dl
push edi
inc edx
add byte [eax + 0x57], ah
inc edx
add al, dh
push esi
inc edx
add byte [ebp + 0x57], ch
inc edx
add byte [ecx + ebx*2 + 0x42], dh
add byte [edi + 0x74004257], ch
pop ecx
inc edx
add bl, ah
push edi
inc edx
add byte [ecx + 0x59], bl
inc edx
add byte [edx + 0x5a], bl
inc edx
add byte [ecx + 0x5a], dh
inc edx
add byte [edx + 0x5a], bh
inc edx
add byte [edx + 0x5a], bl
inc edx
add byte [ecx + 0x5a], dh
inc edx
add byte [edi + 0x59], bl
inc edx
add byte [edx - 0x16ffbda7], al
pop ecx
inc edx
add bl, dh
pop ecx
inc edx
add byte [eax - 0x7fffbda7], al
pop ecx
inc edx
add al, dh
push esi
inc edx
add byte [eax - 0x26ffbda7], al
pop edx
inc edx
add byte [ebx + 0x4100425b], cl
pop esp
inc edx
add cl, bl
pop edx
inc edx
add byte [edi - 0x3bffbda6], ch
pop edx
inc edx
add byte [esp + ebx*2 + 0x42], dl
add byte [ebx + 0x5c], cl
inc edx
add ah, al
pop edx
inc edx
add byte [ebx + 0x5c], cl
inc edx
add al, ah
pop ebp
inc edx
add byte [ecx], cl
pop esi
inc edx
add byte [eax], dl
pop esi
inc edx
add byte [eax], dl
pop esi
inc edx
add byte [eax], dl
pop esi
inc edx
add byte [edx], dl
pop esi
inc edx
add al, ah
pop ebp
inc edx
add al, ah
pop ebp
inc edx
add dh, ah
pop ebp
inc edx
add al, ah
pop ebp
inc edx
add byte [edi + ebx*2], cl
inc edx
add byte [0xf600425f], ah
pop edi
inc edx
add byte [0x1900425f], dh
pushal
inc edx
add byte [eax + 0x42], al
add dh, dl
insd dword es:[edi], dx
inc edx
add byte [ebp + 0x60], ch
inc edx
add dl, dl
popal
inc edx
add byte [edi - 0x51ffbda0], ah
popal
inc edx
add byte [ecx], al
inc edx
add byte [esi - 0x1dffbd9f], ch
popal
inc edx
add byte [esi + 0x39004261], ch
bound eax, qword [edx]
mov ah, 0x61
inc edx
add dl, dl
popal
inc edx
add ah, bl
popal
inc edx
add dh, dl
insd dword es:[edi], dx
inc edx
add byte [ecx + 0x7800426e], al
outsb dx, byte [esi]
inc edx
add byte [eax + 0x6e], bh
inc edx
add dh, dl
insd dword es:[edi], dx
inc edx
add byte [ebx], ah
pushal
inc edx
add al, cl
insd dword es:[edi], dx
inc edx
add byte [edx + 0x3d00426a], dl
pushal
inc edx
add byte [ecx], bl