Function at 0x4287c0
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
mov eax, 0x1210
call fcn.0040cc30
push eax
sub esp, 0xe4
mov eax, esp
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x74], eax
sub esp, 0xec
mov eax, esp
mov edi, eax
mov dword [ebp - 0xb4], eax
sub esp, 0xa4
mov eax, esp
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x70], eax
sub esp, 0xa8
mov eax, esp
mov dword [ebp - 0xb0], eax
mov ebx, eax
sub esp, 0xa4
mov eax, esp
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x6c], eax
sub esp, 0xa8
mov eax, esp
mov dword [ebp - 0x40], eax
mov dword [ebp - 0xac], eax
sub esp, 0xa4
mov eax, esp
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0xa8], eax
sub esp, 0xa4
mov eax, esp
mov dword [ebp - 0x58], eax
mov dword [ebp - 0xa4], eax
sub esp, 0x14
mov dword [ebp - 0x78], esp
sub esp, 0x200
mov dword [ebp - 0x48], esp
sub esp, 0x18
mov eax, esp
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x7c], eax
push eax
mov dword [ebp - 0x4c], esp
sub esp, 0x800
mov dword [ebp - 0x20], esp
push eax
mov dword [ebp - 0x84], esp
push eax
mov dword [ebp - 0x2c], esp
push eax
sub esp, 0x3fc
mov dword [ebp - 0x30], esp
push eax
mov dword [ebp - 0x38], esp
sub esp, 0x14
mov eax, esp
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x14], eax
sub esp, 0x18
mov dword [ebp - 0x3c], esp
sub esp, 0x24
mov dword [ebp - 0x8c], esp
mov dword [ebp - 0x121c], 0x81548720
mov dword [ebp - 0x1218], 0x8d4b834f
mov dword [ebp - 0x1214], 0x89538f47
mov dword [ebp - 0x1210], 0x95588b54
mov dword [ebp - 0x120c], 0x9132974f
mov dword [ebp - 0x1208], 0x9d4f934f
mov dword [ebp - 0x1204], 0x994c9f53
mov dword [ebp - 0x1200], 0x9b98
xor eax, eax
xor ecx, ecx
nop
nop
nop
nop
mov esi, eax
and esi, 2
mov edx, ecx
xor edx, 0xe1
add edx, esi
xor dl, byte [ebp + ecx - 0x121c]
add dl, 0x9b
mov byte [ebp + ecx - 0x121c], dl
inc ecx
add eax, 2
cmp ecx, 0x20
jne case.default.0x4286db
lea eax, [ebp - 0x54]
lea ecx, [ebp - 0x121c]
push 0
push 0
push 0x20019
push eax
mov dword [ebp - 0x18], ecx
push ecx
call fcn.00443bd0
add esp, 0x14
shr eax, 0x1f
jmp dword [eax*4 + 0x44b564]
lea eax, [ebp - 0xd0]
lea ecx, [ebp - 0x50]
push 0
push 0
push 0
push 0
push eax
push ecx
push 0
push 0
push dword [ebp - 0x54]
call fcn.00443f90
add esp, 0x24
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44b56c]
xor eax, eax
jmp 0x429ad2
lea eax, [edi + 0xe4]
mov dword [ebp - 0x98], eax
add dword [ebp - 0x68], 0xe4
lea eax, [ebx + 0xa0]
mov dword [ebp - 0x94], eax
add dword [ebp - 0x64], 0xa0
mov eax, dword [ebp - 0x40]
lea ecx, [eax + 0xa0]
mov dword [ebp - 0x90], ecx
add dword [ebp - 0x60], 0xa0
add dword [ebp - 0x58], 0xa0
add dword [ebp - 0x5c], 0xa0
add edi, 0xe6
mov dword [ebp - 0xa0], edi
add ebx, 0xa2
mov dword [ebp - 0x9c], ebx
add eax, 0xa2
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x44]
lea ecx, [eax + 0x12]
mov dword [ebp - 0xc0], ecx
add dword [ebp - 0x80], 0x10
add eax, 2
mov dword [ebp - 0x44], eax
xor ecx, ecx
xor eax, eax
mov dword [ebp - 0x1c], 0
cmp ecx, dword [ebp - 0x50]
setb al
xor esi, esi
jmp dword [eax*4 + 0x44b574]
inc esi
xor eax, eax
cmp esi, dword [ebp - 0x50]
setb al
jmp dword [eax*4 + 0x44b574]
mov edi, dword [ebp - 0xd0]
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x4287e4
mov eax, 0xffffffff
push eax
call fcn.0040ccd0
add esp, 4
mov ebx, eax
mov dword [ebp - 0xcc], edi
lea eax, [ebp - 0xcc]
push eax
push ebx
push esi
push dword [ebp - 0x54]
call fcn.00443cf0
add esp, 0x10
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44b584]
jmp dword [0x44b614]
lea eax, [ebp - 0x88]
push dword [ebp - 0x54]
push 0
push 0x20019
push eax
push ebx
call fcn.00443bd0
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44b58c]
jmp dword [0x44b614]
mov dword [ebp - 0xbc], esi
mov dword [ebp - 0x178], 0x49dd4bbf
mov dword [ebp - 0x174], 0x45c847d5
mov dword [ebp - 0x170], 0x41cf43d5
mov dword [ebp - 0x16c], 0x7de47fd1
mov dword [ebp - 0x168], 0x799e7bf0
mov dword [ebp - 0x164], 0x75e17791
mov dword [ebp - 0x160], 0x71ee73e6
mov dword [ebp - 0x15c], 0x6de76fe1
mov dword [ebp - 0x158], 0x694a6be1
mov dword [ebp - 0x154], 0x65fd679b
mov dword [ebp - 0x150], 0x61ef63e9
mov dword [ebp - 0x14c], 0x1d871fff
mov dword [ebp - 0x148], 0x19881b8b
mov dword [ebp - 0x144], 0x15361781
mov dword [ebp - 0x140], 0x119913f9
mov dword [ebp - 0x13c], 0xd830f8e
mov dword [ebp - 0x138], 0x9870b8b
mov dword [ebp - 0x134], 0x59d0784
mov dword [ebp - 0x130], 0x1e60397
mov dword [ebp - 0x12c], 0x3db03ff0
mov dword [ebp - 0x128], 0x39a03bad
mov dword [ebp - 0x124], 0x35a237af
mov dword [ebp - 0x120], 0x31bf33af
mov dword [ebp - 0x11c], 0x2de92fd4
mov dword [ebp - 0x118], 0x29e32be1
mov dword [ebp - 0x114], 0x25db27e3
mov dword [ebp - 0x110], 0x21d823de
mov dword [ebp - 0x10c], 0xdd12dff0
mov dword [ebp - 0x108], 0xd917db13
mov dword [ebp - 0x104], 0xd519d717
mov dword [ebp - 0x100], 0xd14ed31b
mov dword [ebp - 0xfc], 0xcd30cf1d
mov dword [ebp - 0xf8], 0xc902cb04
mov dword [ebp - 0xf4], 0xc516c737
mov dword [ebp - 0xf0], 0xc10dc314
mov dword [ebp - 0xec], 0xfd32ff10
mov dword [ebp - 0xe8], 0xf934fb02
mov dword [ebp - 0xe4], 0xf53cf707
mov dword [ebp - 0xe0], 0xf13bf33e
mov dword [ebp - 0xdc], 0xed0aef3a
mov word [ebp - 0xd8], 0xebec
mov dword [ebp - 0xd6], 0
mov eax, 0x356b8193
nop
nop
movzx edx, byte [ebp + eax - 0x356b830b]
lea ecx, [eax - 0x356b8100]
and ecx, edx
mov edi, ecx
and edi, 0xfffffffd
mov esi, ecx
and esi, 2
or ecx, 2
imul ecx, esi
xor esi, 2
imul esi, edi
add ecx, esi
add edx, eax
mov esi, ecx
xor esi, edx
not ecx
and ecx, edx
add ecx, ecx
sub ecx, esi
add cl, 0x21
mov byte [ebp + eax - 0x356b830b], cl
inc eax
cmp eax, 0x356b8239
jne 0x428a00
mov dword [ebp - 0xb8], ebx
lea edi, [ebp - 0x21a]
lea eax, [ebp - 0x178]
mov ecx, 0x28
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [ebp - 0xd8]
lea edi, [ebp - 0x17a]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov esi, dword [ebp - 0xb4]
mov dword [esi], 0x9f779955
mov dword [esi + 4], 0xa3549d7b
mov dword [esi + 8], 0xa751a153
mov dword [esi + 0xc], 0xab40a557
mov dword [esi + 0x10], 0xaf72a95c
mov dword [esi + 0x14], 0xb35bad77
mov dword [esi + 0x18], 0xb752b142
mov dword [esi + 0x1c], 0xbb41b547
mov dword [esi + 0x20], 0xbf9eb94f
mov dword [esi + 0x24], 0x4396bd6e
mov dword [esi + 0x28], 0x4781419c
mov dword [esi + 0x2c], 0x4bbc45b1
mov dword [esi + 0x30], 0x4fab49be
mov dword [esi + 0x34], 0x53a64dbe
mov dword [esi + 0x38], 0x57b3518a
mov dword [esi + 0x3c], 0x5bad55a2
mov dword [esi + 0x40], 0x5fad59b1
mov dword [esi + 0x44], 0x63be5dae
mov dword [esi + 0x48], 0x678f61bb
mov dword [esi + 0x4c], 0x6b8e6596
mov dword [esi + 0x50], 0x6f95699b
mov dword [esi + 0x54], 0x73526d9b
mov dword [esi + 0x58], 0x779371bd
mov dword [esi + 0x5c], 0x7b8d7583
mov dword [esi + 0x60], 0x7f957999
mov dword [esi + 0x64], 0x3f07d95
mov dword [esi + 0x68], 0x72601eb
mov dword [esi + 0x6c], 0xbff05d3
mov dword [esi + 0x70], 0xff909ee
mov dword [esi + 0x74], 0x13e50df5
mov dword [esi + 0x78], 0x17f311e4
mov dword [esi + 0x7c], 0x1bc615f9
mov dword [esi + 0x80], 0x1fe819c8
mov dword [esi + 0x84], 0x23c81def
mov dword [esi + 0x88], 0x27ca21c9
mov dword [esi + 0x8c], 0x2bdd25c1
mov dword [esi + 0x90], 0x2ffd29f4
mov dword [esi + 0x94], 0x33c62dd9
mov dword [esi + 0x98], 0x37c531dc
mov dword [esi + 0x9c], 0x3bd535c7
mov dword [esi + 0xa0], 0x3f0739e4
mov dword [esi + 0xa4], 0xc3f93d0b
mov dword [esi + 0xa8], 0xc701c1f5
mov dword [esi + 0xac], 0xcb00c50e
mov dword [esi + 0xb0], 0xcffac9f8
mov dword [esi + 0xb4], 0xd3e5cdfd
mov dword [esi + 0xb8], 0xd7e7d1e1
mov dword [esi + 0xbc], 0xdb3ed5e5
mov dword [esi + 0xc0], 0xdf18d9ef
mov dword [esi + 0xc4], 0xe3dadde4
mov dword [esi + 0xc8], 0xe7d6e121
mov dword [esi + 0xcc], 0xebdbe5d4
mov dword [esi + 0xd0], 0xefdae9d8
mov dword [esi + 0xd4], 0xf3c4ed2a
mov dword [esi + 0xd8], 0xf7ccf131
mov dword [esi + 0xdc], 0xfbc1f5ce
mov dword [esi + 0xe0], 0xff22f9c2
mov word [esi + 0xe4], 0xfdfc
mov eax, dword [ebp - 0xa0]
mov byte [eax + 4], 0
mov dword [eax], 0
mov edi, 0xda
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esi + edi - 0xda]
mov edx, ebx
and edx, edi
mov eax, edx
or al, 0xfd
inc al
mov ecx, edx
and cl, 0xfd
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, edi
add al, 0xbe
mov byte [esi + edi - 0xda], al
inc edi
cmp edi, 0x1c5
jne 0x428c80
mov eax, esi
mov edi, dword [ebp - 0x74]
mov ecx, 0x39
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov eax, dword [ebp - 0x98]
mov edi, dword [ebp - 0x68]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov edi, dword [ebp - 0xb0]
mov dword [edi], 0x36b014d
mov dword [edi + 4], 0x7740567
mov dword [edi + 8], 0xb790967
mov dword [edi + 0xc], 0xf680d63
mov dword [edi + 0x10], 0x134e1164
mov dword [edi + 0x14], 0x1770155b
mov dword [edi + 0x18], 0x1b73197e
mov dword [edi + 0x1c], 0x1f7b1d7f
mov dword [edi + 0x20], 0x2313217c
mov dword [edi + 0x24], 0x27082517
mov dword [edi + 0x28], 0x2b762918
mov dword [edi + 0x2c], 0x2f5b2d63
mov dword [edi + 0x30], 0x335e3144
mov dword [edi + 0x34], 0x3759355b
mov dword [edi + 0x38], 0x3b663953
mov dword [edi + 0x3c], 0x3f4c3d6c
mov dword [edi + 0x40], 0x4324412f
mov dword [edi + 0x44], 0x472a452d
mov dword [edi + 0x48], 0x4b39492d
mov dword [edi + 0x4c], 0x4f014d10
mov dword [edi + 0x50], 0x53265125
mov dword [edi + 0x54], 0x57395538
mov dword [edi + 0x58], 0x5b315937
mov dword [edi + 0x5c], 0x5f675d00
mov dword [edi + 0x60], 0x63556153
mov dword [edi + 0x64], 0x67256551
mov dword [edi + 0x68], 0x6b2c692e
mov dword [edi + 0x6c], 0x6f5a6d5c
mov dword [edi + 0x70], 0x73417141
mov dword [edi + 0x74], 0x77477545
mov dword [edi + 0x78], 0x7b1e7949
mov dword [edi + 0x7c], 0x7f3c7d4f
mov dword [edi + 0x80], 0x83ba81b8
mov dword [edi + 0x84], 0x87b685c5
mov dword [edi + 0x88], 0x8bbb89b8
mov dword [edi + 0x8c], 0x8fba8dbc
mov dword [edi + 0x90], 0x93a091d2
mov dword [edi + 0x94], 0x97a095d5
mov dword [edi + 0x98], 0x9bad99ae
mov dword [edi + 0x9c], 0x9fc29daa
mov word [edi + 0xa0], 0xa1a0
mov eax, dword [ebp - 0x9c]
mov byte [eax + 2], 0
mov word [eax], 0
mov eax, 0x4090d00
mov ecx, 0xffffffff
nop
nop
nop
nop
nop
movzx edx, byte [edi + eax - 0x4090d00]
mov esi, eax
xor esi, edx
and edx, ecx
or edx, esi
mov ebx, edx
not ebx
and ebx, 1
neg edx
or edx, 1
sub ebx, edx
mov byte [edi + eax - 0x4090d00], bl
inc eax
dec ecx
cmp eax, 0x4090da5
jne 0x428e40
mov eax, edi
mov edi, dword [ebp - 0x70]
mov ecx, 0x28
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov eax, dword [ebp - 0x94]
mov edi, dword [ebp - 0x64]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov edi, dword [ebp - 0xac]
mov dword [edi], 0x79e57bb7
mov dword [edi + 4], 0x7de87fdd
mov dword [edi + 8], 0x71e773ed
mov dword [edi + 0xc], 0x75ec77e1
mov dword [edi + 0x10], 0x69c66be0
mov dword [edi + 0x14], 0x6df46fd9
mov dword [edi + 0x18], 0x61fd63f6
mov dword [edi + 0x1c], 0x65fd67c5
mov dword [edi + 0x20], 0x590d5bc8
mov dword [edi + 0x24], 0x5d0c5f0c
mov dword [edi + 0x28], 0x51fe530c
mov dword [edi + 0x2c], 0x55dd57e1
mov dword [edi + 0x30], 0x49d64bc0
mov dword [edi + 0x34], 0x4ddf4fd9
mov dword [edi + 0x38], 0x41ee43d1
mov dword [edi + 0x3c], 0x45d047f0
mov dword [edi + 0x40], 0xb920bbd5
mov dword [edi + 0x44], 0xbd22bf27
mov dword [edi + 0x48], 0xb127b327
mov dword [edi + 0x4c], 0xb507b71c
mov dword [edi + 0x50], 0xa93eab3f
mov dword [edi + 0x54], 0xad3faf34
mov dword [edi + 0x58], 0xa13fa33d
mov dword [edi + 0x5c], 0xa5e9a70c
mov dword [edi + 0x60], 0x99d39bf1
mov dword [edi + 0x64], 0x9ddb9fd3
mov dword [edi + 0x68], 0x91289326
mov dword [edi + 0x6c], 0x95c297c0
mov dword [edi + 0x70], 0x89df8bc3
mov dword [edi + 0x74], 0x8dd98fdf
mov dword [edi + 0x78], 0x812683db
mov dword [edi + 0x7c], 0x85c087d5
mov dword [edi + 0x80], 0xf9b2fbcc
mov dword [edi + 0x84], 0xfdaeffbf
mov dword [edi + 0x88], 0xf1a5f3ac
mov dword [edi + 0x8c], 0xf5a2f7a0
mov dword [edi + 0x90], 0xe9bcebb2
mov dword [edi + 0x94], 0xeda4efaf
mov dword [edi + 0x98], 0xe1abe3a6
mov dword [edi + 0x9c], 0xe54ae7aa
mov word [edi + 0xa0], 0xdbe4
mov eax, dword [ebp - 0x40]
mov word [eax + 4], 0
mov dword [eax], 0
xor eax, eax
nop
nop
mov ecx, eax
and ecx, 0xbd
mov edx, eax
and edx, 2
mov esi, edx
xor esi, 2
imul esi, ecx
or ecx, 2
imul ecx, edx
mov edx, eax
xor edx, 0xbf
add edx, esi
add edx, ecx
xor dl, byte [edi + eax]
add dl, 0x45
mov byte [edi + eax], dl
inc eax
cmp eax, 0xa8
jne 0x428fe0
mov eax, edi
mov edi, dword [ebp - 0x6c]
mov ecx, 0x28
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov eax, dword [ebp - 0x90]
mov edi, dword [ebp - 0x60]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov edi, dword [ebp - 0xa4]
mov dword [edi], 0x19ad1bcf
mov dword [edi + 4], 0xe558e7b5
mov dword [edi + 8], 0xe15fe355
mov dword [edi + 0xc], 0xed44ef51
mov dword [edi + 0x10], 0xe94eeb50
mov dword [edi + 0x14], 0xf55cf739
mov dword [edi + 0x18], 0xf145f35e
mov dword [edi + 0x1c], 0xfd55ff5d
mov dword [edi + 0x20], 0xf905fb58
mov dword [edi + 0x24], 0xc534c703
mov dword [edi + 0x28], 0xc166c334
mov dword [edi + 0x2c], 0xcd75cf11
mov dword [edi + 0x30], 0xc97ecb70
mov dword [edi + 0x34], 0xd567d779
mov dword [edi + 0x38], 0xd176d361
mov dword [edi + 0x3c], 0xdd60df00
mov dword [edi + 0x40], 0xd970db6d
mov dword [edi + 0x44], 0xa512a76f
mov dword [edi + 0x48], 0xa11fa30f
mov dword [edi + 0x4c], 0xad7faf04
mov dword [edi + 0x50], 0xa916ab17
mov dword [edi + 0x54], 0xb507b71c
mov dword [edi + 0x58], 0xb107b305
mov dword [edi + 0x5c], 0xbd79bf14
mov dword [edi + 0x60], 0xb943bb41
mov dword [edi + 0x64], 0x854b8743
mov dword [edi + 0x68], 0x8148834e
mov dword [edi + 0x6c], 0x8d728f70
mov dword [edi + 0x70], 0x89778b73
mov dword [edi + 0x74], 0x95699777
mov dword [edi + 0x78], 0x913e936b
mov dword [edi + 0x7c], 0x9d509f6d
mov dword [edi + 0x80], 0x99629b64
mov dword [edi + 0x84], 0x65966757
mov dword [edi + 0x88], 0x619d6394
mov dword [edi + 0x8c], 0x6d926f90
mov dword [edi + 0x90], 0x69946ba2
mov dword [edi + 0x94], 0x758c77a7
mov dword [edi + 0x98], 0x718b738e
mov dword [edi + 0x9c], 0x7dda7f8a
mov dword [edi + 0xa0], 0x7b7c
xor eax, eax
nop
nop
nop
nop
nop
nop
lea ecx, [eax + 0x37b]
mov edx, 0xa931c484
sub edx, eax
mov esi, edx
and esi, 0x80100305
and ecx, 0x4fa
or ecx, esi
movzx esi, byte [edi + eax]
xor ecx, 0xfa
and ecx, edx
xor ecx, edx
not ecx
and ecx, esi
xor ecx, edx
lea edx, [ecx + ecx]
not edx
add edx, ecx
mov ecx, edx
and ecx, 1
or edx, 1
add edx, ecx
add dl, 0x98
mov byte [edi + eax], dl
mov ecx, eax
xor ecx, 1
and eax, 1
lea eax, [ecx + eax*2]
cmp eax, 0xa4
jb 0x429180
mov eax, edi
mov edx, dword [ebp - 0xa8]
mov edi, edx
mov ecx, 0x28
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov eax, dword [ebp - 0x58]
mov ecx, 1
mov edi, dword [ebp - 0x5c]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov ecx, dword [ebp - 0x78]
lea eax, [ebp - 0x21a]
mov dword [ecx], eax
mov eax, dword [ebp - 0x74]
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x70]
mov dword [ecx + 8], eax
mov eax, dword [ebp - 0x6c]
mov dword [ecx + 0xc], eax
mov dword [ecx + 0x10], edx
xor ecx, ecx
jmp 0x429239
mov ecx, dword [ebp - 0xc4]
add ecx, 4
mov eax, dword [case.0x4286db.13]
nop
nop
jmp eax
xor eax, eax
cmp ecx, 0x14
setne al
mov ebx, dword [ebp - 0x7c]
jmp dword [eax*4 + 0x44b5a4]
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0xc4], ecx
mov eax, dword [eax + ecx]
mov dword [ebp - 0x10], eax
mov dword [ebx], 0xd92adb34
mov dword [ebx + 4], 0xdd2edf28
mov dword [ebx + 8], 0xd122d32c
mov dword [ebx + 0xc], 0xd57ed720
mov word [ebx + 0x10], 0xabd4
mov eax, dword [ebp - 0xc0]
mov byte [eax + 2], 0
mov word [eax], 0
xor ecx, ecx
xor edi, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, ecx
and eax, 0x1e
mov edx, edi
xor edx, 0x42c23a2f
add edx, eax
lea eax, [edx + edx]
not eax
add eax, edx
mov esi, edx
and esi, 0x75
and eax, 0xa
or eax, esi
movzx esi, byte [ebx + edi]
xor eax, edx
xor eax, 0xf5
and eax, edx
xor eax, edx
not eax
and eax, esi
xor eax, edx
add al, 0x15
mov byte [ebx + edi], al
inc edi
add ecx, 2
cmp edi, 0x15
jne 0x4292a0
mov ecx, dword [ebp - 0x10]
movzx eax, word [ecx]
mov edx, dword [ebp - 0x48]
test ax, ax
je 0x429311
add ecx, 2
mov edx, dword [ebp - 0x48]
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edx], ax
add edx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x429300
mov word [edx], 0
mov eax, dword [ebp - 0x7c]
movzx eax, word [eax]
test ax, ax
mov ebx, dword [ebp - 0x20]
mov esi, dword [ebp - 0x2c]
mov edi, dword [ebp - 0x14]
je 0x429341
mov ecx, dword [ebp - 0x44]
nop
nop
nop
mov word [edx], ax
add edx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x429330
mov word [edx], 0
mov cx, 0x31
xor eax, eax
cmp cx, 0x35
setb al
mov dword [ebp - 0x24], edx
jmp dword [eax*4 + 0x44b5ac]
mov edi, dword [ebp - 0x14]
mov edx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x28]
inc ecx
xor eax, eax
cmp cx, 0x35
setb al
jmp dword [eax*4 + 0x44b5ac]
mov dword [ebp - 0x28], ecx
mov word [edx - 2], cx
push dword [ebp - 0x88]
push 0
push 0x20019
push dword [ebp - 0x4c]
push dword [ebp - 0x48]
call fcn.00443bd0
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44b5b4]
mov eax, dword [ebp - 0x84]
mov dword [eax], 0x800
mov eax, dword [ebp - 0x38]
mov dword [eax], 0x400
xor eax, eax
mov dword [ebp - 0x34], 0
jmp 0x4293da
mov dword [ebp - 0x1c], edx
mov eax, dword [ebp - 0xc8]
inc eax
push dword [ebp - 0x38]
push dword [ebp - 0x30]
push esi
push dword [ebp - 0x84]
push ebx
mov dword [ebp - 0xc8], eax
push eax
mov eax, dword [ebp - 0x4c]
push dword [eax]
call fcn.00444290
add esp, 0x1c
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44b5bc]
test byte [ebp - 0x34], 1
sete al
mov edx, dword [esi]
cmp edx, 1
sete cl
and cl, al
movzx eax, cl
jmp dword [eax*4 + 0x44b5c4]
xor eax, eax
cmp edx, 3
sete al
mov edx, dword [ebp - 0x1c]
jmp dword [eax*4 + 0x44b5f4]
mov dword [ebp - 0x10], edx
mov dword [edi], 0xe11be727
mov dword [edi + 4], 0xfd13e31d
mov dword [edi + 8], 0xf908ff73
mov dword [edi + 0xc], 0xf5fafb74
mov eax, dword [ebp - 0x80]
mov byte [eax + 2], 0
mov word [eax], 0
mov ecx, 0xaf9143a9
mov edx, 0x56
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [edi + ecx + 0x506ebc57]
mov esi, ecx
and esi, eax
add esi, esi
mov ebx, eax
sub ebx, esi
add ebx, ecx
or ebx, edx
add bl, bl
add bl, al
movzx eax, bl
add eax, ecx
add al, 0xb5
mov byte [edi + ecx + 0x506ebc57], al
inc ecx
dec edx
cmp ecx, 0xaf9143bc
jne 0x429480
movzx eax, word [edi]
mov ebx, dword [ebp - 0x20]
mov edi, ebx
test ax, ax
je 0x4294f7
mov edx, dword [ebp - 0x14]
mov ecx, ebx
mov edi, ebx
jmp 0x4294e0
add edi, 2
mov ecx, edi
mov edx, dword [ebp - 0x14]
movzx eax, word [edx]
test ax, ax
je 0x4294f7
movzx esi, word [ecx]
test si, si
je 0x4294f5
cmp si, ax
jne 0x4294d0
add ecx, 2
add edx, 2
jmp 0x4294d8
xor edi, edi
mov eax, dword [case.0x429373.11]
nop
nop
nop
nop
jmp eax
mov edx, dword [ebp - 0x1c]
jmp dword [0x44b5e0]
jmp dword [0x44b5e4]
jmp dword [0x44b5e4]
xor eax, eax
test edi, edi
setne al
mov esi, dword [ebp - 0x2c]
jmp dword [eax*4 + 0x44b5ec]
xor eax, eax
cmp dword [ebp - 0x10], 3
sete al
mov edi, dword [ebp - 0x14]
jmp dword [eax*4 + 0x44b5f4]
mov esi, dword [ebp - 0x3c]
mov dword [esi], 0x41a547b4
mov dword [esi + 4], 0x4ddf43dd
mov dword [esi + 8], 0x49df4fd5
mov dword [esi + 0xc], 0x75a64bda
mov word [esi + 0x10], 0x7774
mov dword [esi + 0x12], 0
mov eax, 0x47add411
mov ebx, 0xb8522bee
nop
movzx edx, byte [esi + eax - 0x47add411]
mov edi, edx
not edi
lea ecx, [edx + edi*2]
mov dword [ebp - 0x10], ecx
mov esi, 0xfffffffe
sub esi, ecx
mov ecx, esi
xor esi, eax
add esi, dword [ebp - 0x10]
and ecx, eax
add ecx, esi
add ecx, 2
mov esi, ebx
xor esi, edx
sub edx, esi
and edi, ebx
add edx, edi
mov esi, dword [ebp - 0x3c]
or edx, ecx
mov ecx, 1
sub ecx, edx
not ecx
or ecx, edx
and ecx, 1
or edx, 1
add edx, ecx
add dl, 0xaa
mov byte [esi + eax - 0x47add411], dl
inc eax
dec ebx
cmp eax, 0x47add427
jne 0x429580
movzx edi, word [esi]
mov ebx, dword [ebp - 0x20]
mov eax, ebx
test di, di
je 0x429696
mov ecx, dword [ebp - 0x3c]
mov edx, ebx
mov eax, ebx
jmp 0x429614
add eax, 2
mov edx, eax
mov ecx, dword [ebp - 0x3c]
movzx edi, word [ecx]
test di, di
je 0x429696
movzx esi, word [edx]
test si, si
je 0x429694
cmp si, di
jne 0x429600
add edx, 2
add ecx, 2
jmp 0x429608
mov eax, dword [ebp - 0x38]
mov edi, dword [eax]
cmp edi, 2
jae 0x429642
mov eax, dword [ebp - 0x18]
jmp 0x42977a
shr edi, 1
lea eax, [edi - 1]
mov dword [ebp - 0x34], eax
mov eax, edi
and eax, 3
je 0x429713
xor edx, edx
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x18]
movzx esi, word [ecx]
xor ebx, ebx
test si, si
setne bl
lea ecx, [ecx + ebx*2]
mov word [eax], si
add eax, 2
inc edx
cmp dword [ebp - 0x10], edx
jne 0x429660
sub edi, edx
mov ebx, dword [ebp - 0x20]
mov esi, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x1c]
cmp dword [ebp - 0x34], 3
jae 0x429720
jmp 0x42977a
xor eax, eax
xor ecx, ecx
test eax, eax
setne cl
mov esi, dword [ebp - 0x2c]
mov edi, dword [ebp - 0x14]
mov edx, dword [ebp - 0x1c]
jmp dword [ecx*4 + 0x44b5fc]
mov eax, dword [ebp - 0x38]
mov edi, dword [eax]
cmp edi, 2
jae 0x4296bf
mov eax, dword [ebp - 0x18]
jmp 0x4297f7
shr edi, 1
lea edx, [edi - 1]
mov eax, edi
and eax, 3
je 0x429793
mov dword [ebp - 0x1c], edx
xor edx, edx
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x18]
nop
nop
nop
movzx esi, word [ecx]
xor ebx, ebx
test si, si
setne bl
lea ecx, [ecx + ebx*2]
mov word [eax], si
add eax, 2
inc edx
cmp dword [ebp - 0x10], edx
jne 0x4296e0
sub edi, edx
mov ebx, dword [ebp - 0x20]
mov esi, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x1c]
cmp edx, 3
jae 0x4297a0
jmp 0x4297f7
mov ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0x34], 3
jb 0x42977a
nop
mov ebx, eax
movzx edx, word [ecx]
xor eax, eax
test dx, dx
setne al
mov word [ebx], dx
lea edx, [ecx + eax*2]
movzx eax, word [ecx + eax*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 eax, word [eax + edx*2]
xor edx, edx
test ax, ax
setne dl
lea ecx, [ecx + edx*2]
mov word [ebx + 6], ax
lea eax, [ebx + 8]
add edi, 0xfffffffc
jne 0x429720
mov ebx, dword [ebp - 0x20]
mov edx, dword [ebp - 0x1c]
mov dword [eax], 0x20003a
add eax, 4
mov dword [ebp - 0x18], eax
mov al, 1
mov dword [ebp - 0x34], eax
mov edi, dword [ebp - 0x14]
jmp case.0x429373.18
mov ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x18]
cmp edx, 3
jb 0x4297f7
nop
nop
mov ebx, eax
movzx edx, word [ecx]
xor eax, eax
test dx, dx
setne al
mov word [ebx], dx
lea edx, [ecx + eax*2]
movzx eax, word [ecx + eax*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 eax, word [eax + edx*2]
xor edx, edx
test ax, ax
setne dl
lea ecx, [ecx + edx*2]
mov word [ebx + 6], ax
lea eax, [ebx + 8]
add edi, 0xfffffffc
jne 0x4297a0
mov ebx, dword [ebp - 0x20]
mov word [eax], 0xa
add eax, 2
mov dword [ebp - 0x18], eax
mov eax, dword [case.0x429373.18]
mov edi, dword [ebp - 0x14]
nop
nop
nop
nop
nop
nop
mov dl, 1
jmp eax
mov eax, dword [ebp - 0x4c]
mov eax, dword [eax]
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x178], 0xbcbdbebf
lea eax, [ebp - 0xd8]
mov byte [eax - 0x9a], 0
mov word [eax - 0x9c], 0
mov ecx, 0xa0505220
nop
nop
nop
movzx eax, byte [ebp + ecx + 0x5fafac68]
xor eax, ecx
add eax, 0xde6e655f
mov edx, eax
and edx, 1
xor eax, 1
lea eax, [eax + edx*2]
mov byte [ebp + ecx + 0x5fafac68], al
inc ecx
cmp ecx, 0xa0505227
jne 0x429850
mov ecx, dword [0x44f9d8]
test ecx, ecx
je case.0x4286db.19
mov edx, dword [ebp - 0x178]
xor edi, edi
mov eax, dword [0x44f9dc]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [eax + edi*8], 0x7e776f1
je 0x4298b3
inc edi
cmp ecx, edi
jne 0x4298a0
jmp case.default.0x4298e6
mov eax, dword [eax + edi*8 + 4]
cmp eax, edx
je case.default.0x4298e6
push dword [ebp - 0x10]
push 1
push dword [0x44f9e0]
push eax
call fcn.00440440
add esp, 0x10
mov ecx, dword [ebp - 0x28]
inc ecx
xor eax, eax
cmp cx, 0x35
setb al
mov edi, dword [ebp - 0x14]
mov edx, dword [ebp - 0x24]
jmp dword [eax*4 + 0x44b5ac]
mov eax, dword [ebp - 0x88]
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x178], 0xbcbdbebf
lea eax, [ebp - 0xd8]
mov byte [eax - 0x9a], 0
mov word [eax - 0x9c], 0
mov ecx, 0xa0505220
nop
nop
movzx eax, byte [ebp + ecx + 0x5fafac68]
xor eax, ecx
add eax, 0xde6e655f
mov edx, eax
and edx, 1
xor eax, 1
lea eax, [eax + edx*2]
mov byte [ebp + ecx + 0x5fafac68], al
inc ecx
cmp ecx, 0xa0505227
jne 0x429920
mov ecx, dword [0x44f9d8]
test ecx, ecx
mov esi, dword [ebp - 0xbc]
mov ebx, dword [ebp - 0xb8]
je 0x4299a0
mov edx, dword [ebp - 0x178]
xor edi, edi
mov eax, dword [0x44f9dc]
nop
nop
nop
cmp dword [eax + edi*8], 0x7e776f1
je 0x429980
inc edi
cmp ecx, edi
jne 0x429970
jmp 0x4299a0
mov eax, dword [eax + edi*8 + 4]
cmp eax, edx
je 0x4299a0
push dword [ebp - 0x10]
push 1
push dword [0x44f9e0]
push eax
call fcn.00440440
add esp, 0x10
nop
nop
nop
nop
jmp dword [0x44b614]
push ebx
call fcn.0040cce0
add esp, 4
inc esi
xor eax, eax
cmp esi, dword [ebp - 0x50]
setb al
jmp dword [eax*4 + 0x44b574]
mov eax, dword [ebp - 0x18]
mov word [eax], 0
mov eax, dword [ebp - 0x1c]
mov ecx, eax
and cl, 1
movzx ecx, cl
jmp dword [ecx*4 + 0x44b57c]
movzx ecx, word [ebp - 0x121c]
xor ebx, ebx
mov edi, 0
test cx, cx
je 0x429a3b
xor edi, edi
lea eax, [ebp - 0x121a]
jmp 0x429a0c
inc edi
movzx ecx, word [eax]
add eax, 2
test cx, cx
je 0x429a3b
cmp cx, 0x7f
jbe 0x429a00
movzx edx, cx
cmp edx, 0x7ff
ja 0x429a30
add edi, 2
jmp 0x429a01
cmp cx, 0xffff
je 0x429a01
add edi, 3
jmp 0x429a01
lea esi, [edi + 1]
push esi
call fcn.0040ccd0
add esp, 4
lea ecx, [ebp - 0x121c]
push ecx
push esi
mov esi, eax
push eax
call fcn.00429ae0
add esp, 0xc
mov edx, dword [ebp - 0x8c]
mov dword [edx], 0xfff2f1a1
mov dword [edx + 4], 0xf3c7c6fd
mov dword [edx + 8], 0xc8c4c6c1
mov dword [edx + 0xc], 0xcbcbe283
mov dword [edx + 0x10], 0xc8cdcecc
mov dword [edx + 0x14], 0xc8c4e58b
mov dword [edx + 0x18], 0xeed6d0ee
mov dword [edx + 0x1c], 0xc7da93df
mov dword [edx + 0x20], 0x41d4
nop
nop
mov eax, ebx
add al, 0x98
xor al, byte [edx + ebx]
add al, 8
mov byte [edx + ebx], al
inc ebx
cmp ebx, 0x24
jne 0x429aa0
mov ecx, dword [ebp + 8]
push edi
push esi
push edx
call fcn.0040db40
jmp dword [0x44b61c]
push esi
mov esi, eax
call fcn.0040cce0
mov eax, esi
add esp, 4
and al, 1
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret