Function at 0x451eb3
Capabilities:
Encrypt data using rc4 ksa
Set current directory

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x4d54
call fcn.00461410
push ebx
mov ebx, dword [ebp + 0xc]
push esi
push edi
mov edi, ecx
lea esi, [ebp - 4]
mov ecx, ebx
mov edx, edi
call fcn.0041dcee
test eax, eax
jne 0x453891
mov eax, 0x262
cmp edi, eax
jg 0x452e59
je 0x452e4d
mov eax, 0x123
cmp edi, eax
jg 0x452880
je 0x4527e8
add eax, 0xffffffa5
cmp edi, eax
jg 0x452487
je 0x452436
cmp edi, 0x78
jg 0x4521de
je 0x4521a8
cmp edi, 0x67
jg 0x4520a5
je 0x452031
mov eax, edi
xor edi, edi
sub eax, edi
je 0x452027
dec eax
je 0x45201d
sub eax, 0x63
je 0x451f5f
dec eax
je 0x4534a1
dec eax
je 0x45348d
xor eax, eax
inc eax
pop edi
pop esi
pop ebx
leave
ret
cmp ebx, 0xffff
jbe 0x451fb3
mov eax, dword [ebx + 4]
cmp eax, edi
je 0x451fa0
push edi
push eax
call fcn.004026c1
pop ecx
pop ecx
push dword [ebx]
lea esi, [ebp - 0x24b4]
mov edi, eax
call fcn.004060e3
push dword [ebx + 8]
mov esi, eax
push edi
call fcn.004306a1
push edi
call dword [sym.imp.NSCRT.dll_free]
add esp, 0xc
jmp 0x4534e8
push dword [ebx]
lea esi, [ebp - 0x1474]
call fcn.004060e3
push edi
jmp 0x4534e2
cmp ebx, edi
jne 0x451fea
mov eax, dword [0x480358]
cmp eax, edi
je case.default.0x453718
push eax
lea esi, [ebp - 0x4534]
call fcn.004060e3
push edi
call fcn.004308c3
pop ecx
push dword [0x480358]
call dword [sym.imp.KERNEL32.dll_GlobalFree]
mov dword [0x480358], edi
jmp 0x4534e8
cmp dword [0x480354], edi
jne 0x452004
push 0x104
push 0x40
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov dword [0x480358], eax
mov ecx, dword [0x480354]
mov eax, dword [0x480358]
inc dword [0x480354]
mov byte [ecx + eax], bl
jmp case.default.0x453718
mov eax, str.5.34
jmp 0x451f5a
mov eax, 0x5034
jmp 0x451f5a
xor esi, esi
cmp ebx, esi
jne 0x452072
mov eax, dword [0x480350]
cmp eax, esi
je case.default.0x453718
mov ecx, dword [0x48034c]
push eax
mov byte [ecx + eax], 0
mov dword [0x48034c], esi
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
push dword [0x480350]
call dword [sym.imp.KERNEL32.dll_GlobalFree]
mov dword [0x480350], esi
jmp case.default.0x453718
cmp dword [0x48034c], esi
jne 0x45208c
push 0x104
push 0x40
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov dword [0x480350], eax
mov ecx, dword [0x48034c]
mov eax, dword [0x480350]
inc dword [0x48034c]
mov byte [ecx + eax], bl
jmp case.default.0x453718
sub edi, 0x68
je 0x45218a
dec edi
je 0x45213b
dec edi
je 0x4520c6
sub edi, 3
jne case.default.0x453718
jmp 0x4535bc
xor esi, esi
cmp dword [0x47b6e0], esi
je case.0x452e82.636
mov eax, dword [0x47b5fc]
cmp eax, esi
je case.0x452e82.636
cmp dword [eax + 0x14], esi
je case.0x452e82.636
call fcn.00430f1d
call fcn.0042f99b
test eax, eax
jne case.0x452e82.636
cmp ebx, esi
mov eax, ebx
jge 0x452104
xor eax, eax
push eax
call fcn.004264fb
test eax, eax
pop ecx
push esi
jge 0x452124
push esi
push 0x402
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_SendMessageA]
jmp case.default.0x453718
call fcn.00426408
cdq
mov ecx, 0x3e8
idiv ecx
call fcn.004134e4
jmp 0x4535bb
test ebx, ebx
jne 0x452155
cmp dword [0x47b6e0], ebx
je case.0x452e82.636
call fcn.00426408
jmp 0x451f5a
cmp ebx, 1
jne 0x4535bc
cmp dword [0x47b6e0], 0
je 0x452180
mov eax, dword [0x47b5fc]
test eax, eax
je 0x452180
call dword [eax + 0x4c]
cdq
mov ecx, 0x3e8
idiv ecx
jmp 0x451f5a
call fcn.0042f83b
jmp 0x451f5a
mov eax, dword [0x47b6dc]
neg eax
sbb eax, eax
xor ecx, ecx
and eax, 2
cmp dword [0x47b6e0], ecx
setne cl
or eax, ecx
jmp 0x451f5a
push 1
push 1
push 0x475210
call fcn.004554cf
push 1
push 1
push 0x4764b0
call fcn.004554cf
add esp, 0x18
call fcn.0042ffcf
test eax, eax
je case.0x452e82.636
call fcn.00430f1d
jmp 0x451f5a
lea eax, [edi - 0x79]
cmp eax, 0xe
ja case.default.0x453718
jmp dword [eax*4 + 0x45389b]
mov eax, 0x475628
jmp 0x451f5a
push dword [ebp + 8]
mov dword [0x47b6bc], 1
call fcn.0044c227
jmp 0x4535bb
cmp ebx, 9
mov dword [0x480348], ebx
ja 0x452229
movzx eax, byte [ebx + 0x473018]
jmp 0x451f5a
cmp ebx, 0xa
jne 0x45223a
movzx eax, byte [0x472d2c]
jmp 0x451f5a
cmp ebx, 0xb
jne 0x45224b
movzx eax, byte [0x475f78]
jmp 0x451f5a
cmp ebx, 0xc
jne 0x4535bc
movzx eax, byte [0x475624]
jmp 0x451f5a
mov esi, dword [0x480348]
mov eax, ebx
and eax, 0xff000000
cmp eax, 0xdb000000
jne 0x452278
movzx esi, byte [ebp + 0xe]
and ebx, 0xffff
test esi, esi
mov dword [ebp + 0xc], ebx
jl 0x452292
cmp esi, 9
jg 0x452292
mov byte [esi + 0x473018], bl
jmp 0x4522b7
cmp esi, 0xa
jne 0x45229f
mov byte [0x472d2c], bl
jmp 0x4522df
cmp esi, 0xb
jne 0x4522ac
mov byte [0x475f78], bl
jmp 0x4522c1
cmp esi, 0xc
jne 0x4522b7
mov byte [0x475624], bl
cmp esi, 0xb
je 0x4522c1
cmp esi, 0xc
jne 0x4522df
movzx eax, byte [0x475624]
movzx ecx, byte [0x475f78]
push eax
xor edx, edx
xor eax, eax
call fcn.00444fb2
cmp esi, 0xc
pop ecx
je 0x4522fc
movzx ecx, byte [0x475f78]
movzx eax, byte [0x472d2c]
push ecx
mov ebx, 0x473018
call fcn.00427694
mov ebx, dword [ebp + 0xc]
pop ecx
cmp dword [0x472cfc], 0
je 0x452328
test esi, esi
jl 0x452328
cmp esi, 0xa
jg 0x452328
mov eax, esi
sub eax, 0xa
inc esi
neg eax
sbb eax, eax
push ebx
and eax, esi
xor ecx, ecx
call fcn.00444ef5
pop ecx
call fcn.0044502a
push 0x25b
push 3
push 0x400
push dword [0x47b6c8]
call dword [sym.imp.USER32.dll_PostMessageA]
jmp 0x4535bc
test ebx, ebx
jne 0x452353
mov eax, dword [0x480944]
jmp 0x451f5a
cmp ebx, 1
jne 0x452362
mov eax, dword [0x480d54]
jmp 0x451f5a
cmp ebx, 2
jne 0x452371
mov eax, dword [0x480d48]
jmp 0x451f5a
mov eax, ebx
sub eax, 5
neg eax
sbb eax, eax
not eax
and eax, dword [0x480958]
jmp 0x451f5a
mov eax, ebx
call fcn.00430ebe
push 0
push 0
jmp 0x45315c
call fcn.0042ffcf
jmp 0x451f5a
cmp ebx, 0xfffffd66
jne 0x4523b5
movzx eax, byte [0x472ce8]
jmp 0x451f5a
cmp bl, 0xff
mov byte [0x472ce8], bl
jbe 0x4523c7
mov byte [0x472ce8], 0xff
movzx eax, byte [0x472ce8]
push eax
call fcn.0042643d
movzx eax, byte [0x472ce8]
push eax
xor eax, eax
call fcn.00446a06
jmp 0x453758
cmp ebx, 0xfffffd66
jne 0x4523fc
movsx eax, byte [0x476088]
jmp 0x451f5a
cmp bl, 0x81
mov al, bl
mov byte [0x476088], al
jge 0x45240f
mov al, 0x81
mov byte [0x476088], al
cmp al, 0x7f
jle 0x45241a
mov al, 0x7f
mov byte [0x476088], al
movsx edi, al
xor eax, eax
call fcn.00446858
movsx eax, byte [0x476088]
push eax
call fcn.0042649c
jmp 0x4535bb
test ebx, ebx
je 0x4535bc
push ebx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
test eax, eax
je 0x4535bc
push ebx
mov esi, 0x476ad0
push esi
call dword [sym.imp.NSCRT.dll__stricmp]
test eax, eax
pop ecx
pop ecx
je 0x4535bc
push ebx
push 0x104
push esi
call fcn.004025ff
push 0
push 0x9d63
push 0x111
push dword [0x47b6c8]
jmp 0x453256
mov eax, 0xf7
cmp edi, eax
jg 0x452625
je 0x4525ad
add eax, 0xffffffdf
cmp edi, eax
jg 0x45253a
je 0x452530
sub edi, 0xc9
je 0x452512
dec edi
je 0x4524fe
sub edi, 9
je 0x4524ed
dec edi
je 0x4524e3
dec edi
jne case.default.0x453718
mov esi, 0x47fb28
push esi
push 0
mov eax, ebx
call fcn.0042ff5b
neg eax
sbb eax, eax
pop ecx
not eax
pop ecx
and eax, esi
jmp 0x451f5a
mov esi, 0x47f718
push esi
push 0
jmp 0x4524f5
push 0
mov esi, 0x47f718
push esi
mov eax, ebx
call fcn.0042fecb
jmp 0x4524d4
test ebx, ebx
je 0x4535bc
mov esi, ebx
call fcn.00427ac3
jmp 0x4535bc
test ebx, ebx
je 0x452526
push 0x475b58
push 0x104
push ebx
call fcn.004025ff
mov eax, 0x476ad0
jmp 0x451f5a
push 0
mov esi, 0x47fb28
push esi
jmp 0x4524cd
sub edi, 0xf0
je 0x4525a3
dec edi
dec edi
je 0x452599
dec edi
je 0x45258a
dec edi
dec edi
jne case.default.0x453718
push 0
push ebx
call fcn.004026c1
pop ecx
pop ecx
push ebx
lea esi, [ebp - 0x34f4]
mov edi, eax
call fcn.004060e3
mov esi, eax
push 1
mov eax, edi
call fcn.00430420
push eax
push esi
call fcn.00430da3
push edi
call dword [sym.imp.NSCRT.dll_free]
add esp, 0x10
jmp 0x453479
mov dword [0x47b6e8], 1
jmp 0x4535bc
call fcn.00414147
jmp 0x451f5a
mov eax, fcn.0040964c
jmp 0x451f5a
call fcn.0042ffcf
test ebx, ebx
mov edi, eax
je 0x452607
push ebx
call dword [0x473f40]
xor esi, esi
test edi, edi
mov dword [ebp - 4], eax
jle 0x4535bc
lea eax, [ebp - 0xa4c]
push 0
push eax
mov eax, esi
call fcn.0042fb65
push dword [ebp - 4]
lea eax, [ebp - 0xa4c]
push eax
push ebx
call dword [sym.imp.NSCRT.dll__wcsnicmp]
add esp, 0x14
test eax, eax
jne 0x4525fd
push eax
mov eax, esi
call fcn.0042f7cc
pop ecx
inc esi
cmp esi, edi
jl 0x4525cc
jmp 0x4535bc
xor esi, esi
test edi, edi
jle 0x4535bc
push 0
mov eax, esi
call fcn.0042f7cc
inc esi
cmp esi, edi
pop ecx
jl 0x452611
jmp 0x4535bc
mov eax, 0x104
cmp edi, eax
jg 0x452724
je 0x4526f2
sub edi, 0xfa
je 0x4526e8
dec edi
je 0x4526d8
dec edi
je 0x4526ad
dec edi
je 0x45268a
sub edi, 6
jne case.default.0x453718
mov esi, dword [0x473f80]
xor eax, eax
cmp ebx, 0xdeadbeef
setne al
mov edi, eax
push edi
push dword [ebp + 8]
call esi
push edi
push dword [0x480840]
call esi
push edi
push dword [0x480950]
call esi
jmp 0x4535bc
xor eax, eax
cmp byte [0x475100], al
setne al
xor ecx, ecx
test ebx, ebx
setne cl
cmp eax, ecx
je case.default.0x453718
push 0
push 0x9c56
jmp 0x4526ce
xor eax, eax
cmp byte [0x475838], al
setne al
xor ecx, ecx
test ebx, ebx
setne cl
cmp eax, ecx
je case.default.0x453718
push 0
push 0x9c57
push 0x111
jmp 0x452116
xor eax, eax
cmp byte [0x475100], al
setne al
jmp 0x451f5a
xor eax, eax
cmp byte [0x475838], al
jmp 0x4526e0
test ebx, ebx
jne 0x452700
mov eax, dword [0x480950]
jmp 0x451f5a
cmp ebx, 1
jne 0x45270f
mov eax, dword [0x480840]
jmp 0x451f5a
mov eax, ebx
dec eax
dec eax
neg eax
sbb eax, eax
not eax
and eax, dword [0x480a28]
jmp 0x451f5a
sub edi, 0x105
je 0x4527c6
sub edi, 0x13
je 0x4527a6
dec edi
je 0x452767
sub edi, 9
jne case.default.0x453718
test ebx, ebx
je 0x4535bc
mov eax, dword [ebx]
test eax, eax
je 0x4535bc
push dword [ebx + 0xc]
push dword [ebx + 8]
push dword [ebx + 4]
push eax
call fcn.004255a3
jmp 0x4537a0
cmp ebx, 0xffffffff
jne 0x452776
mov eax, dword [0x481584]
jmp 0x451f5a
test ebx, ebx
jne 0x452784
mov eax, dword [0x480a20]
jmp 0x451f5a
jbe 0x4535bc
cmp ebx, 0xb
jae 0x4535bc
dec ebx
push ebx
push dword [0x47b4b0]
call dword [sym.imp.USER32.dll_GetSubMenu]
jmp 0x451f5a
cmp ebx, 0xffffffff
jne 0x4527b1
dec dword [0x47b6f0]
cmp ebx, 1
jne 0x4527bc
inc dword [0x47b6f0]
mov eax, dword [0x47b6f0]
jmp 0x451f5a
test ebx, ebx
jne 0x4527d4
mov eax, dword [0x472cfc]
jmp 0x451f5a
mov eax, ebx
dec eax
neg eax
sbb eax, eax
not eax
and eax, dword [0x472d0c]
jmp 0x451f5a
cmp dword [ebx + 4], 2
jne 0x4527fe
cmp byte [0x4769c6], 1
jne 0x4527fe
xor edi, edi
mov dword [ebx + 4], edi
jmp 0x452800
xor edi, edi
push dword [ebx]
lea esi, [ebp - 0xa4c]
call fcn.004060e3
mov eax, esi
push eax
call dword [sym.imp.SHLWAPI.dll_PathIsURLW]
test eax, eax
je 0x452839
mov eax, esi
push eax
call fcn.00431121
cmp eax, edi
pop ecx
je 0x452839
cmp word [eax], di
je 0x452839
push edi
push edi
push eax
call fcn.0040263a
add esp, 0xc
jmp 0x45285d
xor eax, eax
cmp dword [ebx + 4], edi
sete al
push eax
lea eax, [ebp - 0xa4c]
call fcn.00430420
call fcn.0042f470
push edi
push edi
push eax
call fcn.0040263a
add esp, 0x10
push dword [ebx + 0x10]
mov esi, eax
push esi
push dword [ebx + 0xc]
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
push esi
call dword [sym.imp.NSCRT.dll_free]
mov eax, dword [0x473224]
mov dword [ebx + 8], eax
jmp 0x4535bb
mov eax, 0x17c
cmp edi, eax
jg 0x452bf0
je 0x452bd9
lea eax, [edi - 0x124]
cmp eax, 0x48
ja case.default.0x453718
movzx eax, byte [eax + 0x45392f]
jmp dword [eax*4 + 0x4538d7]
test ebx, ebx
je 0x4535bc
mov esi, ebx
call fcn.00415b32
jmp 0x4535bc
test ebx, ebx
je 0x4535bc
mov esi, ebx
call fcn.00415c8e
jmp 0x4535bc
cmp ebx, 1
jne 0x4528e7
call fcn.00426653
jmp 0x451f5a
call fcn.00426ca4
jmp 0x451f5a
push ebx
mov eax, 0x47c578
call fcn.0040d0c6
push ebx
call fcn.004351de
jmp 0x4535bb
push ebx
mov eax, 0x47c578
call fcn.0040d153
push ebx
call fcn.004350c7
jmp 0x4535bb
cmp ebx, 0x10100000
jne 0x45292f
mov eax, 0x473b14
jmp 0x451f5a
mov eax, 0x41b690
jmp 0x451f5a
push dword [ebx + 4]
lea esi, [ebp - 0x1c94]
call fcn.004060e3
push dword [ebx]
mov edi, eax
call fcn.0042659f
pop ecx
push 0x64
mov esi, eax
call dword [sym.imp.KERNEL32.dll_Sleep]
push 1
push 0x108
push 0x100
push 0
lea eax, [ebp - 0x20]
push eax
call dword [sym.imp.USER32.dll_PeekMessageA]
test eax, eax
jne 0x45295b
jmp 0x452d7d
mov eax, 0x47b158
jmp 0x451f5a
mov eax, 0x47b050
jmp 0x451f5a
mov eax, 0x475f80
jmp 0x451f5a
xor eax, eax
cmp dword [0x47c6b8], eax
jne 0x4529c8
push eax
push eax
push 0x47ac40
call fcn.0040263a
mov esi, eax
push esi
call dword [sym.imp.NSCRT.dll__strdup]
push esi
mov dword [0x47c6b8], eax
call dword [sym.imp.NSCRT.dll_free]
add esp, 0x14
mov eax, dword [0x47c6b8]
jmp 0x451f5a
mov eax, 0x47ac40
jmp 0x451f5a
push ebx
push 0xffffffffffffffff
call fcn.0040c79b
jmp 0x453343
push 0
push ebx
push 1
call fcn.0040c494
add esp, 0xc
jmp 0x453492
and dword [ebp - 0x20], 0
and dword [ebp - 0xc], 0
lea eax, [ebp - 0xc54]
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x24]
push eax
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x18], str.__foo
mov dword [ebp - 0x14], 1
mov dword [ebp - 0x10], 0x44b8b2
call dword [0x473f48]
mov esi, eax
test esi, esi
je case.default.0x453718
lea eax, [ebp - 0x22c]
push eax
push esi
call dword [0x473f50]
push esi
call fcn.0040fbe2
pop ecx
mov ecx, dword [0x47b744]
lea eax, [ebp - 0x22c]
push eax
call fcn.00451a76
call fcn.004300b7
xor eax, eax
mov al, byte [0x4769c4]
shr eax, 1
not eax
and eax, 1
push eax
lea eax, [ebp - 0x22c]
push eax
call fcn.004317a8
test byte [0x4769c4], 1
pop ecx
pop ecx
je 0x452a94
push 2
xor eax, eax
call fcn.00431688
pop ecx
call fcn.00415845
jmp 0x4534e8
xor edi, edi
sub ebx, edi
je 0x452acb
dec ebx
je 0x452ac7
dec ebx
je 0x452ac3
dec ebx
je 0x452abf
dec ebx
je 0x452abb
dec ebx
jne case.default.0x453718
push 5
jmp 0x452acd
push 3
jmp 0x452acd
push 4
jmp 0x452acd
push 6
jmp 0x452acd
push 2
jmp 0x452acd
push 7
mov esi, dword [sym.imp.USER32.dll_GetSubMenu]
push 3
push dword [0x481584]
call esi
push eax
call esi
mov esi, eax
cmp esi, edi
je case.default.0x453718
call dword [sym.imp.USER32.dll_GetMessagePos]
push edi
push dword [ebp + 8]
mov dword [ebp - 4], eax
movsx ecx, word [ebp - 2]
push edi
push ecx
movsx eax, ax
push eax
push 2
push esi
call dword [sym.imp.USER32.dll_TrackPopupMenu]
jmp case.default.0x453718
mov ecx, dword [0x47b678]
test ecx, ecx
mov esi, dword [0x473fbc]
mov eax, ebx
push 0xfffffffffffffff8
mov dword [0x47b6d0], eax
pop edi
je 0x452b3d
test ebx, ebx
jne 0x452b33
mov ebx, dword [0x47b6c8]
push ebx
push edi
push ecx
call esi
mov eax, dword [0x47b6d0]
mov ecx, dword [0x4750f8]
test ecx, ecx
je 0x452b5a
test eax, eax
jne 0x452b50
mov eax, dword [0x47b6c8]
push eax
push edi
push ecx
call esi
mov eax, dword [0x47b6d0]
mov ecx, dword [0x4837e0]
test ecx, ecx
je 0x452b77
test eax, eax
jne 0x452b6d
mov eax, dword [0x47b6c8]
push eax
push edi
push ecx
call esi
mov eax, dword [0x47b6d0]
mov ecx, dword [0x4837e4]
test ecx, ecx
je case.default.0x453718
test eax, eax
jne 0x452b8e
mov eax, dword [0x47b6c8]
push eax
push edi
push ecx
call esi
jmp case.default.0x453718
push dword [ebx + 8]
push dword [ebx + 4]
push dword [ebx]
call fcn.004258fd
jmp 0x4537b5
call fcn.00425bc4
jmp 0x451f5a
push dword [ebx + 4]
lea esi, [ebp - 0x2cd4]
call fcn.004060e3
push dword [ebx]
lea esi, [ebp - 0x3d14]
mov edi, eax
call fcn.004060e3
push edi
mov ebx, eax
jmp 0x4535b6
cmp ebx, 0xffffffff
je 0x452be4
mov dword [0x478ba8], ebx
push 1
call fcn.0043587c
jmp 0x4535bb
mov eax, 0x1ff
cmp edi, eax
jg 0x452d29
je 0x452d1d
add eax, 0xfffffffb
cmp edi, eax
jg 0x452cda
je 0x452cce
sub edi, 0x190
je 0x452cc4
sub edi, 9
je 0x452cb8
sub edi, 7
je 0x452cad
sub edi, 0x57
je 0x452c54
dec edi
dec edi
jne case.default.0x453718
test ebx, ebx
je 0x452c4a
push ebx
call fcn.00407dfb
jmp 0x453344
mov eax, fcn.00407dfb
jmp 0x451f5a
test ebx, ebx
jne 0x452c6c
push str.genex.bmp
push 0xfc
call fcn.004432be
jmp 0x453343
cmp ebx, 1
jne 0x452c7b
call fcn.00429dca
jmp 0x451f5a
cmp ebx, 2
jne 0x452c97
push 0x70
xor eax, eax
xor ecx, ecx
call fcn.0040a416
push eax
call dword [sym.imp.NSCRT.dll_atoi]
jmp 0x453343
mov eax, ebx
sub eax, 3
neg eax
sbb eax, eax
not eax
and eax, dword [0x472418]
jmp 0x451f5a
mov dword [0x47b6a8], ebx
jmp 0x4535bc
mov eax, ebx
call fcn.0040a048
jmp 0x4535bc
mov eax, dword [0x48088c]
jmp 0x451f5a
mov edi, ebx
call fcn.00406900
jmp 0x451f5a
sub edi, 0x1fb
je 0x452d11
dec edi
je 0x452d07
dec edi
je 0x452cfb
dec edi
jne case.default.0x453718
push ebx
call fcn.00406b29
pop ecx
jmp case.default.0x453718
mov eax, ebx
call fcn.00406bcb
jmp case.default.0x453718
call fcn.00406b59
jmp 0x451f5a
mov esi, ebx
call fcn.00406ad8
jmp case.default.0x453718
mov eax, ebx
call fcn.0044f402
jmp 0x451f5a
mov eax, 0x215
cmp edi, eax
jg 0x452dcd
je 0x452da8
sub edi, 0x200
je 0x452d9c
dec edi
je 0x452d92
dec edi
je 0x452d88
sub edi, 0x12
jne case.default.0x453718
mov edi, 0x476ce4
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov esi, dword [0x476ce0]
jmp 0x452d70
push ebx
push esi
call dword [ebx]
test eax, eax
pop ecx
pop ecx
jne 0x452d84
mov esi, dword [esi + 0x1c]
test esi, esi
jne 0x452d63
xor esi, esi
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, esi
jmp 0x451f5a
mov esi, eax
jmp 0x452d76
call fcn.00406c7c
jmp 0x451f5a
call fcn.00406bfd
jmp 0x451f5a
mov ecx, ebx
call fcn.00406be5
jmp case.default.0x453718
mov edi, 0x476ce4
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [0x476ce0]
jmp 0x452dc2
cmp eax, ebx
je 0x452dc8
mov eax, dword [eax + 0x1c]
test eax, eax
jne 0x452dbb
jmp 0x452d74
xor esi, esi
inc esi
jmp 0x452d76
cmp edi, 0x25a
jl case.default.0x453718
cmp edi, 0x25b
jle 0x4535bc
cmp edi, 0x25e
je 0x452e2d
cmp edi, 0x260
je 0x452e21
cmp edi, 0x261
jne case.default.0x453718
cmp ebx, 0xffffffff
jne 0x452e0c
dec dword [0x47b6f8]
cmp ebx, 1
jne 0x452e17
inc dword [0x47b6f8]
mov eax, dword [0x47b6f8]
jmp 0x451f5a
movzx eax, byte [0x475f75]
jmp 0x451f5a
cmp ebx, 0xffffffff
jne 0x452e38
dec dword [0x47b6f4]
cmp ebx, 1
jne 0x452e43
inc dword [0x47b6f4]
mov eax, dword [0x47b6f4]
jmp 0x451f5a
movzx eax, byte [0x476194]
jmp 0x451f5a
mov eax, 0x29a
cmp edi, eax
jg 0x45309b
je 0x453091
lea eax, [edi - 0x263]
cmp eax, 0x2b
ja case.default.0x453718
movzx eax, byte [eax + 0x4539e7]
jmp dword [eax*4 + 0x45397b]
movzx eax, byte [0x472c4e]
jmp 0x451f5a
movzx eax, byte [0x476195]
jmp 0x451f5a
xor eax, eax
cmp dword [0x47b70c], eax
jmp 0x453057
inc dword [0x47b70c]
jmp 0x452ebc
dec dword [0x47b70c]
mov eax, dword [0x47b70c]
jmp 0x451f5a
xor eax, eax
test ebx, ebx
sete al
mov dword [0x47b6b4], eax
jmp case.default.0x453718
mov dword [0x47b700], ebx
jmp case.default.0x453718
mov eax, str.out_wave.dll
jmp 0x451f5a
mov eax, dword [0x480888]
jmp 0x451f5a
cmp dword [0x472d14], 0xe
mov ecx, dword [ebx]
mov dword [0x472d10], ecx
je 0x452f3c
mov eax, dword [0x477fac]
test eax, eax
mov ebx, dword [ebx + 4]
mov dword [0x472d14], ebx
je 0x4535bc
push 0x14
push 0x10
push 0x48
add ebx, 0xffffffe6
push ebx
add ecx, 0xffffff21
push ecx
push 0
push eax
call dword [sym.imp.USER32.dll_SetWindowPos]
jmp 0x4535bc
mov eax, dword [ebx + 4]
mov dword [0x4763a4], eax
jmp 0x4535bc
push dword [ebx + 0xc]
mov esi, dword [ebx]
push dword [ebx + 8]
push dword [ebx + 4]
call fcn.00414060
jmp 0x4537b5
call fcn.00427aaf
jmp 0x451f5a
push ebx
push 0x900
call fcn.0044b937
jmp 0x453343
push 0
push 0x901
jmp 0x452f6e
mov eax, dword [0x47b6cc]
jmp 0x451f5a
mov dword [0x47b6cc], ebx
jmp case.default.0x453718
mov ecx, dword [0x47b708]
lea eax, [ecx + 1]
jmp 0x452fca
lea esi, [edi*4 + 0x480860]
mov eax, dword [esi]
test eax, eax
je 0x452fc7
push eax
call fcn.00415125
push dword [esi]
call dword [sym.imp.NSCRT.dll_free]
and dword [esi], 0
pop ecx
pop ecx
mov ecx, dword [0x47b708]
lea eax, [edi + 1]
push 0xa
cdq
pop esi
idiv esi
mov edi, edx
cmp edi, ecx
jne 0x452fa1
jmp 0x4535bc
mov eax, dword [0x47b678]
jmp 0x451f5a
xor eax, eax
cmp byte [0x472cdc], al
jmp 0x453057
xor eax, eax
cmp byte [0x472cdc], al
setne al
xor ecx, ecx
test ebx, ebx
sete cl
cmp eax, ecx
je case.default.0x453718
push 0
push 0x9dcb
jmp 0x4526ce
mov eax, dword [0x47b704]
jmp 0x451f5a
xor eax, eax
test ebx, ebx
setne al
mov dword [0x47b704], eax
jmp case.default.0x453718
or eax, 0xffffffff
jmp 0x451f5a
cmp ebx, 0xffffffff
jne 0x453049
movzx eax, byte [0x475f77]
jmp 0x451f5a
cmp ebx, 1
jne 0x45305f
xor eax, eax
cmp dword [0x472d14], 0xe
sete al
jmp 0x451f5a
test ebx, ebx
jne 0x4535bc
movzx eax, byte [0x475e69]
jmp 0x451f5a
call fcn.00430f1d
call fcn.00430b70
jmp 0x451f5a
call fcn.00430f1d
call fcn.00430b9d
jmp 0x451f5a
mov eax, dword [0x473ae8]
jmp 0x451f5a
mov eax, 0x50d
cmp edi, eax
jg 0x453528
je 0x4534f2
mov eax, 0x3ac
cmp edi, eax
jg 0x45330a
je 0x4532f5
add eax, 0xfffffff9
cmp edi, eax
jg 0x453261
je 0x453213
sub edi, 0x302
je 0x4531ce
sub edi, 0x1e
je 0x45319d
dec edi
je 0x45318b
sub edi, 0x31
je 0x4535bc
dec edi
je 0x453177
sub edi, 0x31
je 0x45316d
sub edi, 0x14
jne case.default.0x453718
xor esi, esi
cmp ebx, esi
je 0x4535bc
mov eax, dword [ebx]
cmp eax, esi
je 0x453139
mov ecx, dword [ebx + 4]
cmp ecx, esi
je 0x453139
cmp eax, 6
jb 0x453127
push 6
pop eax
shl eax, 2
push eax
push ecx
push 0x472d98
call sub.NSCRT.dll_memcpy
add esp, 0xc
mov ebx, dword [ebx + 8]
cmp ebx, esi
je 0x453147
push ebx
call fcn.00446c07
pop ecx
push esi
call fcn.004433e2
cmp dword [0x472d0c], esi
pop ecx
je 0x4535bc
push esi
push esi
push dword [0x480840]
call dword [sym.imp.USER32.dll_InvalidateRect]
jmp 0x4535bc
mov eax, dword [0x472d00]
jmp 0x451f5a
test ebx, ebx
je 0x4535bc
mov esi, ebx
call fcn.00415d23
jmp 0x451f5a
mov eax, ebx
neg eax
sbb eax, eax
not eax
and eax, 0x42d773
jmp 0x451f5a
test ebx, ebx
jne 0x4531ab
mov eax, 0x42d1df
jmp 0x451f5a
cmp ebx, 1
jne 0x4531ba
mov eax, 0x42d1c0
jmp 0x451f5a
mov eax, ebx
dec eax
dec eax
neg eax
sbb eax, eax
not eax
and eax, 0x42d20d
jmp 0x451f5a
cmp ebx, 0xffff
jbe 0x4531fc
mov edi, dword [0x4835b0]
and dword [ebx + 8], 0
test edi, edi
je 0x4535bc
mov eax, 0x473eb0
mov esi, ebx
call fcn.0044f2f4
mov dword [ebx + 8], edi
jmp 0x4535bc
test ebx, ebx
jne 0x4535bc
mov dword [0x478ba8], 0x14
jmp 0x452be4
xor esi, esi
cmp ebx, esi
je 0x4535bc
push esi
push dword [ebx]
push esi
push dword [ebx + 8]
push dword [ebx + 4]
push 0x180
push 1
push dword [0x481584]
call dword [sym.imp.USER32.dll_GetSubMenu]
push eax
call dword [sym.imp.USER32.dll_TrackPopupMenu]
cmp eax, esi
je 0x4535bc
push esi
push eax
push 0x111
push dword [0x480950]
call dword [sym.imp.USER32.dll_SendMessageA]
jmp 0x4535bc
sub edi, 0x3a6
je 0x4532e0
dec edi
je 0x4532c8
dec edi
je 0x4532b0
dec edi
je 0x45334a
dec edi
je 0x453298
dec edi
jne case.default.0x453718
push dword [ebx + 0x10]
push dword [ebx + 0xc]
push dword [ebx + 8]
push dword [ebx + 4]
push dword [ebx]
call fcn.0040abd2
jmp 0x453362
push dword [ebx + 0x10]
push dword [ebx + 0xc]
push dword [ebx + 8]
push dword [ebx + 4]
push dword [ebx]
call fcn.0040a982
jmp 0x453362
push dword [ebx + 0x10]
push dword [ebx + 0xc]
push dword [ebx + 8]
push dword [ebx + 4]
push dword [ebx]
call fcn.0040aad1
jmp 0x453362
push dword [ebx + 0x10]
push dword [ebx + 0xc]
push dword [ebx + 8]
push dword [ebx + 4]
push dword [ebx]
call fcn.0040a9d4
jmp 0x453362
push dword [ebx + 0x10]
push dword [ebx + 0xc]
push dword [ebx + 8]
push dword [ebx + 4]
push dword [ebx]
call fcn.0040a76d
jmp 0x453362
push dword [ebx + 0x10]
push dword [ebx + 0xc]
push dword [ebx + 8]
push dword [ebx + 4]
push dword [ebx]
call fcn.0040ad6d
jmp 0x453362
mov eax, 0x3e8
cmp edi, eax
jg 0x4533b5
je 0x4533a9
sub edi, 0x3ad
je 0x453394
dec edi
je 0x45334a
dec edi
je 0x45337f
dec edi
je 0x45336a
dec edi
je 0x45334a
dec edi
jne case.default.0x453718
push dword [ebx + 8]
push dword [ebx + 4]
call fcn.0040afa2
pop ecx
pop ecx
jmp 0x451f5a
mov eax, dword [ebx + 0x10]
mov ecx, dword [ebx + 0xc]
mov edx, dword [ebx + 8]
mov esi, dword [ebx + 4]
mov ebx, dword [ebx]
push eax
push ecx
push edx
push esi
push ebx
call fcn.0040ab6a
add esp, 0x14
jmp 0x451f5a
push dword [ebx + 0x10]
push dword [ebx + 0xc]
push dword [ebx + 8]
push dword [ebx + 4]
push dword [ebx]
call fcn.0040aef9
jmp 0x453362
push dword [ebx + 0x10]
push dword [ebx + 0xc]
push dword [ebx + 8]
push dword [ebx + 4]
push dword [ebx]
call fcn.0040ae11
jmp 0x453362
push dword [ebx + 0x10]
push dword [ebx + 0xc]
push dword [ebx + 8]
push dword [ebx + 4]
push dword [ebx]
call fcn.0040adbf
jmp 0x453362
mov eax, ebx
call fcn.004324e9
jmp case.default.0x453718
sub edi, 0x44c
je 0x4534bd
dec edi
je 0x45349f
dec edi
je 0x45348d
sub edi, 0x8f
je 0x453466
sub edi, 0x2e
je 0x453400
dec edi
jne case.default.0x453718
cmp ebx, 1
jne 0x4533f6
call fcn.00426972
jmp 0x451f5a
call fcn.00426da5
jmp 0x451f5a
cmp dword [ebx + 4], 2
jne 0x453413
cmp byte [0x4769c6], 1
jne 0x453413
and dword [ebx + 4], 0
push dword [ebx]
call dword [sym.imp.SHLWAPI.dll_PathIsURLW]
test eax, eax
je 0x45344b
push dword [ebx]
call fcn.00431121
test eax, eax
pop ecx
je 0x45344b
cmp word [eax], 0
je 0x45344b
push dword [ebx + 0x10]
push eax
push dword [ebx + 0xc]
call dword [0x473f3c]
mov eax, dword [0x473224]
mov dword [ebx + 8], eax
jmp 0x4535bc
push dword [ebx + 0x10]
xor eax, eax
cmp dword [ebx + 4], eax
sete al
push eax
mov eax, dword [ebx]
call fcn.00430420
pop ecx
call fcn.0042f470
jmp 0x453434
push 1
mov eax, ebx
call fcn.00430420
push eax
push ebx
call fcn.00430da3
add esp, 0xc
push 0
push 0
push 0x401
push dword [0x480840]
jmp 0x453256
call fcn.00415845
xor esi, esi
inc esi
call fcn.004322a5
jmp 0x452d7d
xor edi, edi
call fcn.0042ffcf
xor ecx, ecx
test eax, eax
setg cl
mov esi, ecx
call fcn.004300b7
push edi
call fcn.004313bf
pop ecx
jmp 0x453495
cmp ebx, 0xffff
jbe case.default.0x453718
mov eax, dword [ebx + 4]
test eax, eax
je 0x4534de
push dword [ebx + 8]
mov esi, dword [ebx]
push eax
call fcn.004306a1
pop ecx
jmp 0x4534e7
mov eax, dword [ebx]
push 0
call fcn.004308c3
pop ecx
call fcn.004322a5
jmp case.default.0x453718
push dword [ebx]
mov edi, dword [ebx + 4]
call fcn.0042659f
pop ecx
push 0x64
mov esi, eax
call dword [sym.imp.KERNEL32.dll_Sleep]
push 1
push 0x108
push 0x100
push 0
lea eax, [ebp - 0x20]
push eax
call dword [sym.imp.USER32.dll_PeekMessageA]
test eax, eax
jne 0x453507
jmp 0x452d7d
mov eax, 0xbcb
cmp edi, eax
jg 0x4536f6
je 0x4536d7
add eax, 0xfffffff4
cmp edi, eax
jg 0x4535d4
je 0x4535c3
sub edi, 0x513
je 0x4535b1
dec edi
je 0x4535a9
sub edi, 0x2bf
je 0x4535fa
dec edi
je 0x4535bc
sub edi, 0x3e5
je 0x45359f
sub edi, 3
je 0x453582
dec edi
jne case.default.0x453718
cmp dword [0x47b604], 0
jne 0x4535bc
push ebx
jmp 0x453598
cmp dword [0x47b604], 0
jne 0x4535bc
push ebx
lea esi, [ebp - 0x4d54]
call fcn.004060e3
push eax
call fcn.00431196
jmp 0x4535bb
mov eax, 0x473b80
jmp 0x451f5a
mov dword [0x472db0], ebx
jmp 0x4535bc
push dword [ebx + 4]
mov ebx, dword [ebx]
call fcn.00425bd0
pop ecx
xor eax, eax
jmp 0x451f5a
xor eax, eax
test ebx, ebx
sete al
mov dword [0x47b6b8], eax
jmp case.default.0x453718
sub edi, 0xbc2
je case.default.0x453718
dec edi
je 0x4536c3
dec edi
je 0x453645
sub edi, 3
je 0x453625
dec edi
dec edi
je 0x453615
dec edi
jne case.default.0x453718
push dword [0x47b6c8]
call fcn.004295f0
pop ecx
mov esi, 0x47c5f0
call fcn.00455342
jmp case.default.0x453718
push ebx
mov esi, 0x47c5cc
call fcn.0045471a
jmp case.default.0x453718
sub ebx, 0
je 0x45363b
dec ebx
jne case.default.0x453718
mov eax, fcn.00455d38
jmp 0x451f5a
mov eax, 0x455d30
jmp 0x451f5a
push 0x15
push 0x46de10
push ebx
call dword [sym.imp.NSCRT.dll__strnicmp]
add esp, 0xc
test eax, eax
jne 0x4536b7
push 0x164
call sub.NSCRT.dll_void____cdecl_operator_new_unsigned_int_
test eax, eax
pop ecx
je 0x453672
mov esi, eax
call fcn.00453a47
jmp 0x453674
xor eax, eax
mov esi, eax
mov dword [0x47b63c], eax
call fcn.00429efe
mov esi, dword [0x47b63c]
push 1
call fcn.004211d6
mov eax, dword [0x47b63c]
push 5
push dword [eax + 0x38]
call dword [sym.imp.USER32.dll_ShowWindow]
mov eax, dword [0x47b63c]
push dword [eax + 0x38]
call dword [sym.imp.USER32.dll_SetForegroundWindow]
push ebx
push dword [0x47b63c]
call fcn.00429f8f
push ebx
call dword [sym.imp.NSCRT.dll_free]
jmp 0x4535bb
cmp ebx, 2
ja 0x4535bc
push ebx
call fcn.004039c9
jmp 0x4535bb
test ebx, ebx
mov eax, dword [0x473b10]
jne 0x4536eb
inc dword [0x473b10]
jmp 0x451f5a
add dword [0x473b10], ebx
jmp 0x451f5a
mov eax, 0x10000
cmp edi, eax
jg case.default.0x453718
je 0x453805
lea eax, [edi - 0xbcc]
cmp eax, 0xc
ja case.default.0x453718
jmp dword [eax*4 + 0x453a13]
mov eax, dword [0x47b724]
jmp 0x451f5a
xor eax, eax
cmp dword [0x47b49c], eax
jmp 0x453057
mov eax, 0x47c5b8
jmp 0x451f5a
mov al, byte [ebx]
cmp al, 0x68
je 0x45374a
cmp al, 0x48
jne 0x45375e
cmp byte [ebx + 1], 0
jne 0x45375e
push ebx
push 0
call fcn.00453a9a
pop ecx
jmp 0x4535bb
push 0
push ebx
call fcn.004026c1
mov esi, eax
push esi
push 0
call fcn.00453a9a
push esi
call dword [sym.imp.NSCRT.dll_free]
add esp, 0x14
jmp 0x4535bc
test ebx, ebx
je 0x4535bc
mov eax, dword [ebx]
test eax, eax
je 0x4535bc
push dword [ebx + 0xc]
push dword [ebx + 8]
push dword [ebx + 4]
push eax
call fcn.004256e3
add esp, 0x10
jmp 0x451f5a
push dword [ebx + 8]
push dword [ebx + 4]
push dword [ebx]
call fcn.00425a69
add esp, 0xc
jmp 0x451f5a
call fcn.00454a16
jmp 0x451f5a
push dword [ebx + 4]
push dword [ebx]
push 0x47c5b8
call fcn.00454a22
jmp 0x453443
mov eax, 0x475c60
jmp 0x451f5a
mov eax, ebx
call fcn.0042f6cf
jmp 0x451f5a
call fcn.0042f723
jmp 0x451f5a
mov eax, 0x480d60
jmp 0x451f5a
test ebx, ebx
je 0x4535bc
mov eax, dword [0x47c6bc]
test eax, eax
mov dword [ebp - 4], 0x10001
mov esi, eax
mov edi, eax
je 0x453842
push ebx
push dword [esi]
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
je 0x45383a
inc dword [ebp - 4]
mov edi, esi
mov esi, dword [esi + 4]
test esi, esi
jne 0x453821
test esi, esi
jne 0x453891
test edi, edi
jne 0x45386c
push 8
call dword [sym.imp.NSCRT.dll_malloc]
test eax, eax
pop ecx
mov dword [0x47c6bc], eax
je 0x4535bc
and dword [eax + 4], 0
push ebx
call dword [sym.imp.NSCRT.dll__strdup]
pop ecx
mov ecx, dword [0x47c6bc]
jmp 0x45388f
push 8
call dword [sym.imp.NSCRT.dll_malloc]
test eax, eax
pop ecx
mov dword [edi + 4], eax
je 0x4535bc
and dword [eax + 4], 0
push ebx
call dword [sym.imp.NSCRT.dll__strdup]
pop ecx
mov ecx, dword [edi + 4]
mov dword [ecx], eax
mov eax, dword [ebp - 4]
jmp 0x451f5a