Function at 0x420950
Capabilities:
Contain obfuscated stackstrings
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x2e0
mov dword [esp + 0x64], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x140], 0x49fee7ed
mov byte [esp + 0x144], 0x6c
mov dword [esp + 0x145], 0
mov byte [esp + 0x149], 0
xor esi, esi
mov edi, 0x13
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + esi + 0x140]
mov ebx, edx
not ebx
or ebx, edi
mov eax, ebx
or al, 2
inc al
mov ecx, ebx
shr cl, 1
and cl, 1
mul cl
mov ecx, eax
add cl, al
add cl, dl
test bl, 2
sete al
not bl
or bl, 2
mul bl
add al, al
sub cl, al
movzx eax, cl
add eax, esi
add al, 0x50
mov byte [esp + esi + 0x140], al
inc esi
dec edi
cmp esi, 0xa
jne 0x4209b0
mov eax, dword [ebp + 0xc]
mov edx, dword [eax]
movzx eax, byte [esp + 0x140]
test al, al
je 0x420a2d
lea ecx, [esp + 0x141]
mov esi, dword [ebp + 0x10]
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 0x420a20
jmp 0x420a30
mov esi, dword [ebp + 0x10]
mov dword [esp + 4], edx
mov byte [edx], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x40], 0
lea eax, [esp + 0x50]
lea ecx, [esp + 0x60]
lea edi, [esp + 0x40]
push eax
push ecx
push edi
mov eax, dword [ebp + 0x14]
push dword [eax + 0x10]
push esi
push dword [eax + 0xc]
call fcn.004230f0
add esp, 0x18
test al, al
je 0x420b1d
mov dword [esp + 0x140], 0xe70f1d14
mov byte [esp + 0x144], 0xe8
mov dword [esp + 0x145], 0
mov byte [esp + 0x149], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + eax + 0x140]
mov ecx, eax
and ecx, 9
xor ecx, 0xe497f4d9
mov edx, eax
and edx, 6
sub edx, ecx
mov ecx, edx
and ecx, esi
add ecx, ecx
add edx, esi
mov esi, edx
not esi
and esi, ecx
not ecx
and ecx, edx
sub ecx, esi
add cl, 0x3d
mov byte [esp + eax + 0x140], cl
inc eax
cmp eax, 0xa
jne 0x420ab0
movzx eax, byte [esp + 0x140]
test al, al
je 0x420b2a
lea ecx, [esp + 0x141]
mov edx, dword [esp + 4]
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 0x420b10
jmp 0x420b2e
mov dword [esp + 0x14], 0
jmp 0x421c11
mov edx, dword [esp + 4]
mov dword [esp + 4], edx
mov byte [edx], 0
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x64]
mov dword [esp + 0x134], edx
mov dword [esp + 0x130], ecx
mov dword [esp + 0x138], eax
mov dword [esp + 0x140], 0xc23025c1
mov dword [esp + 0x144], 0x34cf352e
mov dword [esp + 0x148], 0x3eccdcde
mov dword [esp + 0x14c], 0xdcdfdec1
mov dword [esp + 0x150], 0xc620d729
mov dword [esp + 0x154], 0x1d1e2b15
mov dword [esp + 0x158], 0xd0d3d2d5
mov dword [esp + 0x15c], 0x4566a724
mov dword [esp + 0x160], 0x5bbc61a7
mov dword [esp + 0x164], 0xbaafab5b
mov dword [esp + 0x168], 0x6aaab54f
mov dword [esp + 0x16c], 0xb3745448
mov dword [esp + 0x170], 0x748aa442
mov dword [esp + 0x174], 0xbf5bbbb5
mov dword [esp + 0x178], 0xaea849ab
mov dword [esp + 0x17c], 0x8c8f8eb1
mov dword [esp + 0x180], 0x7a757779
mov dword [esp + 0x184], 0x848b6097
mov dword [esp + 0x188], 0x80997f94
mov dword [esp + 0x18c], 0x979f9e81
mov dword [esp + 0x190], 0x989b9a85
mov dword [esp + 0x194], 0x5f9e8399
mov dword [esp + 0x198], 0x829a8f9e
mov dword [esp + 0x19c], 0xa2a56386
mov dword [esp + 0x1a0], 0x686b6a6d
mov dword [esp + 0x1a4], 0x9a566e9d
mov dword [esp + 0x1a8], 0x977d9265
mov dword [esp + 0x1ac], 0x7c738069
mov dword [esp + 0x1b0], 0x787b7a7d
mov dword [esp + 0x1b4], 0x60777679
mov dword [esp + 0x1b8], 0x6e81be79
mov dword [esp + 0x1bc], 0x4c4f4e71
mov dword [esp + 0x1c0], 0xb5a7b4bf
mov dword [esp + 0x1c4], 0x49b24a49
mov byte [esp + 0x1c8], 4
mov dword [esp + 0x1c9], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0x23
xor cl, byte [esp + eax + 0x140]
add cl, 0x51
mov byte [esp + eax + 0x140], cl
inc eax
cmp eax, 0x8d
jne 0x420cf0
mov dword [esp + 0x80], 0x98d6c2c2
mov dword [esp + 0x84], 0xb86bf530
mov dword [esp + 0x88], 0xcfb46828
mov dword [esp + 0x8c], 0xebeae5e4
mov dword [esp + 0x90], 0xe75aea6d
mov dword [esp + 0x94], 0xdbc36424
mov dword [esp + 0x98], 0xf7f6f1f0
mov dword [esp + 0x9c], 0x33ca7c3c
mov dword [esp + 0xa0], 0x5c16bd7f
mov dword [esp + 0xa4], 0x8f8eba5e
mov dword [esp + 0xa8], 0x8b8a8d8c
mov dword [esp + 0xac], 0x87868988
mov dword [esp + 0xb0], 0x48061212
mov dword [esp + 0xb4], 0x5a1a35e0
mov dword [esp + 0xb8], 0xd2591982
mov dword [esp + 0xbc], 0xdbdad5d4
mov dword [esp + 0xc0], 0x17fe2810
mov dword [esp + 0xc4], 0xa3461955
mov dword [esp + 0xc8], 0xa71f2c68
mov dword [esp + 0xcc], 0x43aaa5a4
mov dword [esp + 0xd0], 0xafaea980
mov dword [esp + 0xd4], 0x793d65ac
mov dword [esp + 0xd8], 0x65397950
mov dword [esp + 0xdc], 0x21357d5c
mov dword [esp + 0xe0], 0xbfbeb9b8
mov dword [esp + 0xe4], 0x67463070
mov dword [esp + 0xe8], 0x970f4880
mov dword [esp + 0xec], 0x8b00ce4c
mov dword [esp + 0xf0], 0x8f8e8988
mov dword [esp + 0xf4], 0x5b928d8c
mov dword [esp + 0xf8], 0x8295af19
mov dword [esp + 0xfc], 0x9b9a9594
mov dword [esp + 0x100], 0x7b521650
mov dword [esp + 0x104], 0x4293559c
mov byte [esp + 0x108], 0x60
mov byte [esp + 0x10d], 0
mov dword [esp + 0x109], 0
mov edx, 0xfa
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [esp + edx - 0x7a]
mov ebx, eax
mov esi, eax
and ebx, edx
mov eax, ebx
or al, 0xfd
inc al
mov ecx, ebx
and cl, 0xfd
mul cl
mov ecx, eax
mov eax, esi
add cl, al
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, 0x1e
mov byte [esp + edx - 0x7a], al
inc edx
cmp edx, 0x188
jne 0x420eb0
lea eax, [esp + 0x140]
lea edx, [esp + 0x80]
lea ecx, [esp + 0x130]
push eax
push 0x88
push edx
push edi
call fcn.00441980
mov dword [esp + 0x12c], edx
mov dword [esp + 0x128], eax
or eax, edx
je 0x420fad
mov dword [esp + 0x140], 0x9f040730
mov byte [esp + 0x144], 0x88
mov dword [esp + 0x145], 0
mov dword [esp + 0x148], 0
mov eax, 0x63
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0xdd]
mov edx, ecx
and edx, eax
add dl, dl
sub cl, dl
movzx ecx, cl
add ecx, eax
add cl, 0x11
mov byte [esp + eax + 0xdd], cl
inc eax
cmp eax, 0x6f
jne 0x420f60
movzx eax, byte [esp + 0x140]
test al, al
je 0x420fb4
lea ecx, [esp + 0x141]
mov edx, dword [esp + 4]
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x420fa0
jmp 0x420fb8
xor ecx, ecx
jmp 0x421c0d
mov edx, dword [esp + 4]
mov esi, edx
mov byte [edx], 0
lea eax, [esp + 0x128]
lea ecx, [esp + 0x130]
push 0
push 8
push eax
push edi
call fcn.00441980
mov dword [esp + 0x124], edx
mov dword [esp + 0x120], eax
xor ecx, ecx
or eax, edx
je 0x421bdf
mov dword [esp + 0x140], 0x79dcdcc2
mov byte [esp + 0x144], 0x7c
mov dword [esp + 0x145], 0
mov byte [esp + 0x149], 0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, ecx
add al, 0x94
xor al, byte [esp + ecx + 0x140]
add al, 0x1c
mov byte [esp + ecx + 0x140], al
inc ecx
cmp ecx, 0xa
jne 0x421020
movzx eax, byte [esp + 0x140]
test al, al
mov edi, esi
je 0x42105b
lea ecx, [esp + 0x141]
nop
mov byte [edi], al
inc edi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x421050
mov byte [edi], 0
lea eax, [esp + 0x120]
lea edx, [esp + 0x54]
lea ecx, [esp + 0x40]
push 0
push 8
push eax
push edx
call fcn.00440c10
mov eax, dword [esp + 0x54]
cmp eax, dword [esp + 0x58]
je 0x421bdb
mov dword [esp + 0x140], 0x997e7d41
mov byte [esp + 0x144], 0xe4
mov dword [esp + 0x145], 0
mov dword [esp + 0x148], 0
mov eax, 0x58
mov ecx, 0xa7
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + eax + 0xe8]
mov edx, ecx
xor edx, eax
and edx, esi
xor edx, eax
add dl, 0x48
mov byte [esp + eax + 0xe8], dl
inc eax
dec ecx
cmp eax, 0x64
jne 0x4210c0
movzx eax, byte [esp + 0x140]
test al, al
je 0x42110b
lea ecx, [esp + 0x141]
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 0x421100
mov byte [edi], 0
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x3c], ecx
cmp eax, ecx
je 0x421bdb
xor ecx, ecx
lea esi, [esp + 0x40]
jmp 0x421158
xor ebx, ebx
push dword [esp + 0xc]
call fcn.00404c20
add esp, 4
mov ecx, dword [esp + 0x14]
and cl, 1
or cl, bl
mov eax, dword [esp + 0x38]
add eax, 8
cmp eax, dword [esp + 0x3c]
je 0x421be3
mov dword [esp + 0x14], ecx
mov ecx, dword [eax]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x38], eax
mov eax, dword [eax + 4]
mov dword [esp + 8], eax
push 0x198
push 0
lea eax, [esp + 0x148]
push eax
call fcn.0040cd50
add esp, 0xc
xor ebx, ebx
jmp 0x42119e
lea esi, [esp + 0x40]
inc ebx
cmp ebx, 0xb
je 0x4213c0
mov ecx, esi
push 0
push 0
push 0x198
lea eax, [esp + 0x14c]
push eax
push dword [esp + 0x18]
push dword [esp + 0x20]
call fcn.00440a70
test eax, eax
js 0x421194
movzx eax, byte [esp + 0x210]
movzx ecx, byte [esp + 0x211]
or al, 0x30
mov byte [esp + 0x68], al
or cl, 0x30
mov byte [esp + 0x69], cl
movzx ecx, byte [esp + 0x212]
or cl, 0x30
mov byte [esp + 0x6a], cl
movzx ecx, byte [esp + 0x2d0]
or cl, 0x30
mov byte [esp + 0x6b], cl
mov word [esp + 0x6c], 0xa
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi + ecx], al
movzx eax, byte [esp + ecx + 0x69]
inc ecx
test al, al
jne 0x421210
mov byte [edi + ecx], 0
cmp byte [esp + 0x212], 0
jne 0x4213e0
add edi, ecx
mov dword [esp + 4], edi
mov dword [esp + 0x80], 0xcbada45d
mov byte [esp + 0x84], 0xc0
lea eax, [esp + 0x85]
mov byte [eax + 2], 0
mov word [eax], 0
mov edi, 0x176a8d1
mov ecx, 0xc89572e
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + edi - 0x176a851]
mov esi, ecx
and esi, 0xc890202
mov eax, edi
and eax, 0x134800d
or eax, esi
xor edx, 0x9ecb2ad2
mov esi, edx
and esi, eax
add edx, eax
add esi, esi
sub edx, esi
add dl, 0xeb
mov byte [esp + edi - 0x176a851], dl
inc edi
dec ecx
cmp edi, 0x176a8d9
jne 0x421270
movzx eax, byte [esp + 0x80]
test al, al
je 0x4212e0
lea ecx, [esp + 0x81]
mov edi, dword [esp + 4]
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 0x4212d0
jmp 0x4212e4
mov edi, dword [esp + 4]
mov byte [edi], 0
mov dword [esp + 0x1c], 0xffffffff
mov dword [esp + 0x18], 0xff676980
mov dword [esp + 0x80], 0x94959a9b
lea eax, [esp + 0x85]
mov byte [eax + 1], 0
mov word [eax - 1], 0
mov eax, 0x213a0566
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax - 0x213a04e6]
lea edx, [eax - 0x213a0500]
and edx, ecx
or ecx, eax
xor ecx, edx
mov edx, 0xfe
sub edx, ecx
inc ecx
and edx, 0xaa
and ecx, 0x55
sub ecx, edx
add cl, 0xab
mov byte [esp + eax - 0x213a04e6], cl
inc eax
cmp eax, 0x213a056d
jne 0x421320
mov eax, dword [0x4528cc]
test eax, eax
je 0x421190
mov ecx, dword [esp + 0x80]
xor edx, edx
mov esi, dword [0x4528d0]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [esi + edx*8], 0xf8fd61b8
je 0x421393
inc edx
cmp eax, edx
jne 0x421380
jmp 0x421190
mov eax, dword [esi + edx*8 + 4]
cmp eax, ecx
je 0x421190
lea ecx, [esp + 0x18]
push ecx
push 0
push 2
push dword [0x4528d4]
push eax
call fcn.004428e0
add esp, 0x14
jmp 0x421190
cmp byte [esp + 0x212], 0
jne 0x4213e2
mov ecx, dword [esp + 0x14]
jmp 0x421147
add edi, ecx
mov dword [esp + 4], edi
call fcn.00404de0
mov dword [esp + 0xc], eax
push eax
call fcn.004047a0
add esp, 4
mov dword [esp + 8], eax
mov dword [esp + 0x80], 0x2b595d47
mov byte [esp + 0x84], 0x30
lea eax, [esp + 0x85]
mov byte [eax + 4], 0
mov dword [eax], 0
mov eax, 0xa03fc135
mov ecx, 0xca
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax + 0x5fc03f4b]
lea esi, [edx + edx]
not esi
add esi, edx
and esi, eax
and edx, ecx
or edx, esi
mov ebx, edx
and ebx, 0xf4
mov edi, edx
and edi, 2
mov esi, edi
xor esi, 2
imul esi, ebx
or ebx, 2
imul ebx, edi
mov edi, edx
and edi, 0x76
add edi, edi
sub edx, edi
add edx, esi
add edx, ebx
add dl, 0xf7
mov byte [esp + eax + 0x5fc03f4b], dl
inc eax
dec ecx
cmp eax, 0xa03fc13f
jne 0x421430
movzx eax, byte [esp + 0x80]
test al, al
je 0x4214b0
lea ecx, [esp + 0x81]
mov edi, dword [esp + 4]
lea esi, [esp + 0x40]
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x4214a0
jmp 0x4214b8
mov edi, dword [esp + 4]
lea esi, [esp + 0x40]
mov byte [edi], 0
mov eax, dword [esp + 0x178]
mov edx, dword [esp + 0x17c]
xor ebx, ebx
mov ecx, eax
or ecx, edx
je 0x421500
mov ecx, esi
push 0
push 0
push 0x40
lea esi, [esp + 0x8c]
push esi
push edx
push eax
call fcn.00440a70
test eax, eax
js 0x421504
lea ecx, [esp + 0x40]
mov edx, esi
push dword [esp + 8]
call fcn.00423a00
add esp, 4
jmp 0x421506
xor eax, eax
jmp 0x42150a
xor eax, eax
lea esi, [esp + 0x40]
mov dword [esp + 0x80], 0x61040401
mov byte [esp + 0x84], 0x94
mov dword [esp + 0x85], 0
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, ebx
add cl, 0x66
xor cl, byte [esp + ebx + 0x80]
add cl, 2
mov byte [esp + ebx + 0x80], cl
inc ebx
cmp ebx, 9
jne 0x421530
movzx ecx, byte [esp + 0x80]
test cl, cl
je 0x42156b
lea edx, [esp + 0x81]
nop
mov byte [edi], cl
inc edi
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x421560
mov byte [edi], 0
test al, al
je 0x421130
push dword [esp + 8]
call fcn.00404be0
add esp, 4
test eax, eax
je 0x4216de
mov eax, dword [esp + 0x298]
mov edx, dword [esp + 0x29c]
add eax, 0x28
adc edx, 0
mov ecx, esi
push 0
push 0
push 8
lea ebx, [esp + 0x124]
push ebx
push edx
push eax
call fcn.00440a70
test eax, eax
mov dword [esp + 4], edi
js 0x421840
mov eax, dword [esp + 0x118]
mov edx, dword [esp + 0x11c]
add eax, 0x10
adc edx, 0
mov ecx, esi
push 0
push 0
push 8
lea ebx, [esp + 0x11c]
push ebx
push edx
push eax
call fcn.00440a70
test eax, eax
js 0x421840
mov eax, dword [esp + 0x110]
mov edx, dword [esp + 0x114]
add eax, 0x10
adc edx, 0
mov ecx, esi
push 0
push 0
push 0x18
lea esi, [esp + 0x74]
push esi
push edx
push eax
call fcn.00440a70
test eax, eax
js 0x421840
cmp byte [esp + 0x7f], 0
lea esi, [esp + 0x68]
js 0x4216e5
mov dword [esp + 0x18], 0x57e94915
mov dword [esp + 0x1c], 0x53ec55f9
mov dword [esp + 0x20], 0x5f125130
mov dword [esp + 0x24], 0x5be65dfd
mov dword [esp + 0x28], 0xa70259f9
mov word [esp + 0x2c], 0xa5a4
lea eax, [esp + 0x2e]
mov byte [eax + 2], 0
mov word [eax], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0xee
xor cl, byte [esp + eax + 0x18]
add cl, 0x5a
mov byte [esp + eax + 0x18], cl
inc eax
cmp eax, 0x19
jne 0x421680
movzx edi, word [esp + 0x18]
test di, di
mov dword [esp + 8], esi
je 0x421716
lea eax, [esp + 0x18]
mov edx, esi
mov ecx, esi
jmp 0x4216b8
movzx edi, word [eax]
test di, di
je 0x42171a
movzx esi, word [edx]
test si, si
je 0x421753
add edx, 2
add eax, 2
lea ebx, [ecx + 2]
cmp si, di
je 0x4216d6
mov ecx, ebx
mov edx, ebx
je 0x4216b0
lea eax, [esp + 0x18]
jmp 0x4216b0
mov bl, 1
jmp 0x421132
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x6c]
mov eax, ecx
or eax, edx
je 0x421840
mov edi, dword [esp + 0x70]
mov ebx, edi
inc ebx
mov dword [esp + 8], ecx
mov dword [esp + 0x10], edx
jns 0x4217e8
mov eax, 0xffffffff
jmp 0x4217ef
mov ecx, esi
jmp 0x421725
lea ebx, [esp + 0x80]
test ecx, ecx
je 0x42175a
movzx edx, word [ecx + 0x14]
lea ebx, [esp + 0x80]
test dx, dx
je 0x42175a
lea eax, [ecx + 0x14]
xor edi, edi
nop
nop
nop
nop
nop
nop
cmp dx, 0x5c
je 0x421785
movzx edx, word [ecx + edi + 0x16]
add edi, 2
test dx, dx
jne 0x421740
lea ebx, [esp + 0x80]
cmp byte [esp + 0x7f], 0
jns 0x42176d
push dword [esp + 8]
call fcn.0040cbd0
add esp, 4
lea eax, [esp + 0x80]
cmp eax, ebx
mov edi, dword [esp + 4]
jne 0x4218d6
jmp 0x421840
lea esi, [ecx + edi]
add esi, 0x14
add ecx, edi
mov edi, 0xffffffeb
sub edi, ecx
and edi, eax
mov ecx, eax
not ecx
and ecx, esi
lea edx, [esp + 0x80]
mov ebx, edx
sub ecx, edi
je 0x421bc6
sar ecx, 1
mov edi, ecx
and ecx, 3
je 0x421b68
mov dword [esp + 0x10], edi
xor edi, edi
mov ebx, edx
movzx esi, word [eax]
xor edx, edx
test si, si
setne dl
lea eax, [eax + edx*2]
mov word [ebx], si
add ebx, 2
inc edi
cmp ecx, edi
jne 0x4217c2
mov ecx, dword [esp + 0x10]
mov esi, ecx
sub esi, edi
jmp 0x421b6e
lea eax, [edi*2 + 2]
push eax
call fcn.0040cbc0
add esp, 4
mov esi, eax
mov eax, 2
sub eax, edi
and eax, 2
mov ecx, ebx
and ecx, 0xfffffffd
imul ecx, eax
mov eax, ebx
and eax, 2
or ebx, 2
imul ebx, eax
add ebx, ecx
lea ecx, [esp + 0x40]
push 0
push 0
push ebx
push esi
push dword [esp + 0x20]
push dword [esp + 0x1c]
call fcn.00440a70
test eax, eax
mov edi, dword [esp + 4]
jns 0x421633
nop
nop
nop
nop
mov dword [esp + 0x18], 0x89388b5b
mov dword [esp + 0x1c], 0x85378735
mov dword [esp + 0x20], 0x8130833d
mov dword [esp + 0x24], 0x9d129f37
mov dword [esp + 0x28], 0x999a9b2d
mov dword [esp + 0x2c], 0
mov eax, 0x1b80e563
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax - 0x1b80e54b]
mov edx, ecx
and edx, eax
add dl, dl
sub cl, dl
movzx ecx, cl
add ecx, eax
add cl, 0x11
mov byte [esp + eax - 0x1b80e54b], cl
inc eax
cmp eax, 0x1b80e57b
jne 0x421880
movzx eax, word [esp + 0x18]
lea edx, [esp + 0x80]
mov ebx, edx
test ax, ax
je 0x4218d1
lea ecx, [esp + 0x1a]
mov ebx, edx
mov word [ebx], ax
add ebx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4218c0
mov word [ebx], 0
mov edx, ebx
lea eax, [esp + 0x80]
sub edx, eax
mov ecx, edx
shr ecx, 2
mov esi, edi
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov eax, edx
and eax, 0xfffffffc
lea edi, [esi + eax]
add eax, esp
add eax, 0x80
mov ecx, edx
shr ecx, 1
and ecx, 1
mov esi, eax
mov dword [esp + 8], edi
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
test bl, 1
je 0x421924
mov ecx, edx
and ecx, 2
movzx eax, byte [eax + ecx]
mov esi, dword [esp + 8]
mov byte [esi + ecx], al
mov dword [esp + 0x18], 0xebfffd96
mov word [esp + 0x1c], 0x9d92
lea eax, [esp + 0x2e]
mov word [eax - 0xc], 0
mov dword [eax - 0x10], 0
xor eax, eax
xor ecx, ecx
lea edi, [esp + 0x18]
nop
nop
nop
nop
mov esi, eax
and esi, 0xcc
mov ebx, ecx
xor ebx, 0x19
sub ebx, esi
inc bl
xor bl, byte [edi]
add bl, 0x7e
mov byte [edi], bl
inc edi
dec ecx
add eax, 0xfffffffe
cmp ecx, 0xfffffff4
jne 0x421950
mov esi, dword [esp + 4]
add esi, edx
movzx eax, byte [esp + 0x18]
test al, al
je 0x42199b
lea ecx, [esp + 0x19]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x421990
mov dword [esp + 4], esi
mov byte [esi], 0
mov eax, dword [ebp + 0x14]
mov edi, dword [eax]
mov eax, 0xfffffffe
nop
nop
nop
nop
cmp word [edi + eax + 2], 0
lea eax, [eax + 2]
jne 0x4219b0
sar eax, 1
sar edx, 1
lea ecx, [edx + eax]
add ecx, 0xa
test ecx, ecx
jns 0x4219d0
mov eax, 0xffffffff
jmp 0x4219d9
add edx, eax
lea eax, [edx*2 + 0x14]
push eax
call fcn.0040cbc0
add esp, 4
movzx ecx, word [edi]
mov edx, eax
test cx, cx
je 0x421a11
add edi, 2
mov edx, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edx], cx
add edx, 2
movzx ecx, word [edi]
add edi, 2
test cx, cx
jne 0x421a00
mov dword [esp + 0x10], eax
mov dword [esp + 8], edx
mov word [edx], 0x2f
mov dword [esp + 0x18], 0x1500735
mov dword [esp + 0x1c], 0xd7b036f
mov dword [esp + 0x20], 0x9720f3a
mov dword [esp + 0x24], 0x15760b70
mov word [esp + 0x28], 0x1714
lea eax, [esp + 0x2e]
mov byte [eax - 2], 0
mov word [eax - 4], 0
mov ecx, 0x7495b4fb
mov edx, 0x8b6a4b84
nop
nop
nop
movzx esi, byte [esp + ecx - 0x7495b4e3]
lea edi, [ecx - 0x7a]
and edi, esi
mov eax, edi
and eax, 0xffffffbd
mov ebx, edi
or ebx, 0xfffffffd
inc ebx
imul ebx, eax
mov eax, edi
and eax, 2
or edi, 2
imul edi, eax
lea eax, [ebx + esi]
sub eax, edi
sub edi, ebx
sub edi, esi
add eax, ecx
add edi, edx
and edi, 0x7c
and eax, 0x83
sub eax, edi
add al, 0x7d
mov byte [esp + ecx - 0x7495b4e3], al
inc ecx
dec edx
cmp ecx, 0x7495b510
jne 0x421a60
mov edx, dword [esp + 8]
add edx, 2
movzx eax, word [esp + 0x80]
test ax, ax
je 0x421ae3
lea ecx, [esp + 0x82]
mov ebx, dword [esp + 0x10]
nop
mov word [edx], ax
add edx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x421ad0
jmp 0x421ae7
mov ebx, dword [esp + 0x10]
mov word [edx], 0
movzx eax, word [esp + 0x18]
test ax, ax
je 0x421b11
lea ecx, [esp + 0x1a]
nop
nop
nop
nop
nop
nop
mov word [edx], ax
add edx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x421b00
mov word [edx], 0
mov esi, 0xffffffff
push dword [esp + 0xc]
call fcn.004059d0
add esp, 4
mov edi, eax
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi + esi + 1], 0
lea esi, [esi + 1]
jne 0x421b30
mov ecx, dword [ebp + 8]
push esi
push edi
push ebx
call fcn.0040d5f0
mov esi, eax
push edi
call fcn.00405a60
add esp, 4
push ebx
mov ebx, esi
call fcn.0040cbd0
add esp, 4
mov edi, dword [esp + 4]
lea esi, [esp + 0x40]
jmp 0x421132
mov ebx, edx
mov esi, edi
mov ecx, edi
dec ecx
cmp ecx, 3
jb 0x421bc6
movzx edx, word [eax]
xor ecx, ecx
test dx, dx
setne cl
mov word [ebx], dx
lea edx, [eax + ecx*2]
movzx eax, word [eax + ecx*2]
xor ecx, ecx
test ax, ax
setne cl
mov word [ebx + 2], ax
lea eax, [edx + ecx*2]
movzx ecx, word [edx + ecx*2]
xor edx, edx
test cx, cx
setne dl
mov word [ebx + 4], cx
lea ecx, [eax + edx*2]
movzx edx, word [eax + edx*2]
xor eax, eax
test dx, dx
setne al
lea eax, [ecx + eax*2]
mov word [ebx + 6], dx
add ebx, 8
add esi, 0xfffffffc
jne 0x421b74
mov word [ebx], 0
cmp byte [esp + 0x7f], 0
jns 0x42176d
jmp 0x421761
xor ecx, ecx
jmp 0x421c09
mov edi, esi
jmp 0x421c09
mov eax, dword [esp + 0x54]
and cl, 1
test eax, eax
je 0x421c09
cmp eax, dword [esp + 0x58]
je 0x421c09
push eax
mov esi, ecx
call fcn.0040cbd0
mov ecx, esi
add esp, 4
mov dword [esp + 0x54], 0
mov dword [esp + 4], edi
mov dword [esp + 0x14], ecx
lea ecx, [esp + 0x40]
call fcn.004401c0
mov dword [esp + 0x140], 0x9beaeffb
mov byte [esp + 0x144], 0x60
mov dword [esp + 0x145], 0
mov word [esp + 0x149], 0
mov esi, 0x9c
mov eax, 0xffffffff
mov edi, 1
mov dword [esp + 0x38], 0
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x3c], edi
mov dword [esp + 0xc], eax
movzx eax, byte [esp + esi + 0xa4]
mov dword [esp + 8], eax
mov eax, dword [esp + 0xc]
or eax, 0x9fe51619
lea edx, [esi + eax]
add edx, 0xffffff65
mov ebx, edx
not ebx
mov ecx, edx
and ecx, 0xfffffffd
and ebx, 2
imul ebx, ecx
or edx, 2
add eax, edi
shr eax, 1
mov edi, eax
and edi, 1
imul edi, edx
and al, 1
mul dl
mov ecx, dword [esp + 0x38]
and ecx, 0x12
lea edx, [ebx + edi*2]
mov edi, dword [esp + 0x3c]
sub edx, ecx
add edx, esi
add edx, 0x9fe5157d
and edx, dword [esp + 8]
add al, al
add al, byte [esp + 8]
add bl, al
sub bl, cl
add dl, dl
sub bl, dl
movzx eax, bl
add eax, esi
mov byte [esp + esi + 0xa4], al
mov eax, dword [esp + 0xc]
inc esi
dec eax
add dword [esp + 0x38], 2
inc edi
cmp esi, 0xa7
jne 0x421c60
movzx eax, byte [esp + 0x140]
test al, al
je 0x421d1d
lea ecx, [esp + 0x141]
mov edx, dword [esp + 4]
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x421d10
jmp 0x421d21
mov edx, dword [esp + 4]
mov byte [edx], 0
mov eax, dword [ebp + 0xc]
mov dword [eax], edx
mov eax, dword [esp + 0x14]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret