Function at 0x30017390
Capabilities:
Allocate or change rwx memory
Execute shellcode via indirect call

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x334
mov eax, dword [0x3021be88]
xor eax, esp
mov dword [esp + 0x330], eax
push ebx
push esi
push edi
mov dword [esp + 0x14], ecx
lea esi, [ebp + 8]
mov ecx, 0x2a
mov dword [0x30272550], 1
lea edi, [esp + 0x38]
xor eax, eax
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x14]
mov edi, edx
mov dword [esp + 0x2c], eax
xor ebx, ebx
mov dword [esp + 0xc], eax
push 0x3a
mov eax, dword [esi + 4]
push edi
mov eax, dword [eax + 0xb8]
mov dword [esp + 0x28], eax
call fcn.30161610
add esp, 8
mov dword [esp + 0x18], eax
test eax, eax
je 0x300175d0
lea ebx, [eax + 1]
push 0x3a
push ebx
call fcn.30161610
add esp, 8
mov dword [esp + 0x1c], eax
test eax, eax
je 0x3001756e
cmp byte [eax + 1], 0x3a
jne 0x3001756e
push ebx
mov byte [eax], 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov ecx, eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x34], ecx
mov byte [eax], 0x3a
add eax, 2
mov dword [esp + 0x10], eax
test ecx, ecx
je 0x300174b1
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push dword [esp + 0x34]
mov ebx, eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test ebx, ebx
jne 0x30017559
call fcn.3016b560
push ebx
mov dword [eax], ebx
lea eax, [esp + 0x38]
push eax
push dword [esp + 0x18]
call fcn.3016b8f2
add esp, 0xc
mov ebx, eax
call fcn.3016b560
cmp dword [eax], 0
jne 0x3001749a
mov eax, dword [esp + 0x10]
cmp dword [esp + 0x34], eax
je 0x3001749a
mov dword [esp + 0xc], 1
jmp 0x300174d3
mov ebx, dword [esp + 0x18]
inc ebx
push ebx
push str.ActionDispatcher:_Failed_to_get_target:__s._n
call fcn.30009fe0
mov eax, dword [esp + 0x18]
add esp, 8
mov dword [esp + 0x10], eax
mov edx, ebx
mov eax, dword [esp + 0x1c]
mov byte [eax], 0
mov ecx, dword [esi + 4]
call fcn.30016ad0
mov ebx, eax
mov eax, dword [esp + 0x1c]
mov byte [eax], 0x3a
mov eax, dword [esp + 0x10]
test ebx, ebx
je 0x300175d0
mov ecx, dword [esi + 4]
mov edx, eax
mov dword [esp + 0xc], 1
call fcn.30016ad0
mov dword [esp + 0x2c], eax
test eax, eax
jne 0x300175d0
call fcn.3016b560
push 0
mov dword [eax], 0
lea eax, [esp + 0x34]
push eax
push dword [esp + 0x18]
call fcn.3016b8f2
add esp, 0xc
mov dword [esp + 0x2c], eax
call fcn.3016b560
cmp dword [eax], 0
mov eax, dword [esp + 0x10]
jne 0x30017533
cmp dword [esp + 0x30], eax
jne 0x300175d0
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov dword [esp + 0x2c], eax
test eax, eax
jne 0x300175d0
push dword [esp + 0x10]
push str.ActionDispatcher:_Failed_to_get_target_arg:__s._n
call fcn.30009fe0
add esp, 8
jmp 0x300175d0
mov eax, dword [esp + 0x10]
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], eax
jmp 0x300174d3
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov ebx, eax
test ebx, ebx
jne 0x300175c8
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + 4]
lea edx, [edx + 1]
call fcn.30016ad0
mov ebx, eax
test ebx, ebx
jne 0x300175c8
call fcn.3016b560
push ebx
mov dword [eax], ebx
lea eax, [esp + 0x20]
push eax
mov eax, dword [esp + 0x20]
inc eax
push eax
call fcn.3016b8f2
add esp, 0xc
mov ebx, eax
call fcn.3016b560
cmp dword [eax], 0
jne 0x30017604
mov ecx, dword [esp + 0x18]
lea eax, [ecx + 1]
mov dword [esp + 0x10], eax
cmp dword [esp + 0x1c], eax
je 0x3001760d
mov dword [esp + 0xc], 1
push 6
push str.SetEax
push edi
call fcn.30169a61
add esp, 0xc
test eax, eax
jne 0x30017683
test ebx, ebx
jne 0x3001765f
cmp dword [esp + 0xc], ebx
jne 0x3001765f
push str.ActionDispatcher:_Cannot_set_EAX___target_value_missing._n
call fcn.30009fe0
add esp, 4
jmp 0x30018af7
mov eax, dword [esp + 0x18]
inc eax
mov dword [esp + 0x10], eax
call fcn.3016b560
mov ecx, dword [esp + 0x18]
push 0
mov dword [eax], 0
lea eax, [esp + 0x20]
push eax
lea eax, [ecx + 1]
push eax
call fcn.3016b860
add esp, 0xc
mov ebx, eax
call fcn.3016b560
cmp dword [eax], 0
jne 0x30017645
mov eax, dword [esp + 0x10]
cmp dword [esp + 0x1c], eax
jne 0x300175c8
mov ecx, dword [esp + 0x18]
lea eax, [ecx + 1]
push eax
push str.ActionDispatcher:_Failed_to_get_target:__s._n
call fcn.30009fe0
add esp, 8
jmp 0x300175d0
mov eax, dword [esi + 4]
mov dword [eax + 0xb0], ebx
mov eax, dword [esi + 4]
push dword [eax + 0xb0]
push str.ActionDispatcher:_setting_EAX_to_0x_x._n
call fcn.30009fe0
add esp, 8
jmp 0x30018af7
push 6
push str.SetEbx
push edi
call fcn.30169a61
add esp, 0xc
test eax, eax
jne 0x300176d7
test ebx, ebx
jne 0x300176b3
cmp dword [esp + 0xc], ebx
jne 0x300176b3
push str.ActionDispatcher:_Cannot_set_EBX___target_value_missing._n
call fcn.30009fe0
add esp, 4
jmp 0x30018af7
mov eax, dword [esi + 4]
mov dword [eax + 0xa4], ebx
mov eax, dword [esi + 4]
push dword [eax + 0xa4]
push str.ActionDispatcher:_setting_EBX_to_0x_x._n
call fcn.30009fe0
add esp, 8
jmp 0x30018af7
push 6
push str.SetEcx
push edi
call fcn.30169a61
add esp, 0xc
test eax, eax
jne 0x3001772b
test ebx, ebx
jne 0x30017707
cmp dword [esp + 0xc], ebx
jne 0x30017707
push str.ActionDispatcher:_Cannot_set_ECX___target_value_missing._n
call fcn.30009fe0
add esp, 4
jmp 0x30018af7
mov eax, dword [esi + 4]
mov dword [eax + 0xac], ebx
mov eax, dword [esi + 4]
push dword [eax + 0xac]
push str.ActionDispatcher:_setting_ECX_to_0x_x._n
call fcn.30009fe0
add esp, 8
jmp 0x30018af7
push 6
push str.SetEdx
push edi
call fcn.30169a61
add esp, 0xc
test eax, eax
jne 0x3001777f
test ebx, ebx
jne 0x3001775b
cmp dword [esp + 0xc], ebx
jne 0x3001775b
push str.ActionDispatcher:_Cannot_set_EDX___target_value_missing._n
call fcn.30009fe0
add esp, 4
jmp 0x30018af7
mov eax, dword [esi + 4]
mov dword [eax + 0xa8], ebx
mov eax, dword [esi + 4]
push dword [eax + 0xa8]
push str.ActionDispatcher:_setting_EDX_to_0x_x._n
call fcn.30009fe0
add esp, 8
jmp 0x30018af7
push 6
push str.SetEsi
push edi
call fcn.30169a61
add esp, 0xc
test eax, eax
jne 0x300177d3
test ebx, ebx
jne 0x300177af
cmp dword [esp + 0xc], ebx
jne 0x300177af
push str.ActionDispatcher:_Cannot_set_ESI___target_value_missing._n
call fcn.30009fe0
add esp, 4
jmp 0x30018af7
mov eax, dword [esi + 4]
mov dword [eax + 0xa0], ebx
mov eax, dword [esi + 4]
push dword [eax + 0xa0]
push str.ActionDispatcher:_setting_ESI_to_0x_x._n
call fcn.30009fe0
add esp, 8
jmp 0x30018af7
push 6
push str.SetEdi
push edi
call fcn.30169a61
add esp, 0xc
test eax, eax
jne 0x30017827
test ebx, ebx
jne 0x30017803
cmp dword [esp + 0xc], ebx
jne 0x30017803
push str.ActionDispatcher:_Cannot_set_EDI___target_value_missing._n
call fcn.30009fe0
add esp, 4
jmp 0x30018af7
mov eax, dword [esi + 4]
mov dword [eax + 0x9c], ebx
mov eax, dword [esi + 4]
push dword [eax + 0x9c]
push str.ActionDispatcher:_setting_EDI_to_0x_x._n
call fcn.30009fe0
add esp, 8
jmp 0x30018af7
push 6
push str.SetPtr
push edi
call fcn.30169a61
add esp, 0xc
test eax, eax
jne 0x3001786f
test ebx, ebx
jne 0x30017858
cmp dword [esp + 0xc], ebx
jne 0x30017858
push ebx
push str.ActionDispatcher:_Cannot_set_0x_p_pointer_value___target_missing._n
call fcn.30009fe0
add esp, 8
jmp 0x30018af7
mov eax, dword [esp + 0x2c]
push eax
push ebx
push str.ActionDispatcher:_Setting_value_pointed_at_by_0x_p_to_0x_x._n
mov dword [ebx], eax
call fcn.30009fe0
jmp 0x30018af4
push 6
push str.SetSrc
push edi
call fcn.30169a61
add esp, 0xc
test eax, eax
jne 0x300178d5
test ebx, ebx
jne 0x300178a1
cmp dword [esp + 0xc], ebx
jne 0x300178a1
push 0
push str.ActionDispatcher:_Cannot_set_operand_value___target_missing._n
call fcn.30009fe0
add esp, 8
jmp 0x30018af7
lea eax, [esp + 0x70]
push 0x2c
push eax
call fcn.30161610
mov edi, eax
add esp, 8
test edi, edi
je 0x30018af7
mov byte [edi], 0
lea edx, [esp + 0x70]
mov ecx, dword [esi + 4]
push ebx
call fcn.30017110
add esp, 4
mov byte [edi], 0x2c
jmp 0x30018af7
push 6
push str.SetDst
push edi
call fcn.30169a61
add esp, 0xc
test eax, eax
jne 0x3001791e
test ebx, ebx
jne 0x300178f3
cmp dword [esp + 0xc], ebx
je 0x3001788d
lea eax, [esp + 0x70]
push 0x2c
push eax
call fcn.30161610
add esp, 8
test eax, eax
je 0x30018af7
mov ecx, dword [esi + 4]
lea edx, [eax + 2]
push ebx
call fcn.30017110
add esp, 4
jmp 0x30018af7
push str.ClearZeroFlag
push edi
call fcn.30169d90
add esp, 8
test eax, eax
jne 0x30017950
mov eax, dword [esi + 4]
test eax, eax
je 0x3001793e
and dword [eax + 0xc0], 0xffffffbf
push str.ActionDispatcher:_clearing_zero_flag._n
call fcn.30009fe0
add esp, 4
jmp 0x30018af7
push str.SetZeroFlag
push edi
call fcn.30169d90
add esp, 8
test eax, eax
jne 0x30017982
mov eax, dword [esi + 4]
test eax, eax
je 0x30017970
or dword [eax + 0xc0], 0x40
push str.ActionDispatcher:_setting_zero_flag._n
call fcn.30009fe0
add esp, 4
jmp 0x30018af7
push str.FlipZeroFlag
push edi
call fcn.30169d90
add esp, 8
test eax, eax
jne 0x300179b4
mov eax, dword [esi + 4]
test eax, eax
je 0x300179a2
xor dword [eax + 0xc0], 0x40
push str.ActionDispatcher:_flipping_zero_flag._n
call fcn.30009fe0
add esp, 4
jmp 0x30018af7
push str.ClearSignFlag
push edi
call fcn.30169d90
add esp, 8
test eax, eax
jne 0x300179e9
mov eax, dword [esi + 4]
test eax, eax
je 0x300179d7
and dword [eax + 0xc0], 0xffffff7f
push str.ActionDispatcher:_clearing_Sign_flag._n
call fcn.30009fe0
add esp, 4
jmp 0x30018af7
push str.SetSignFlag
push edi
call fcn.30169d90
add esp, 8
test eax, eax
jne 0x30017a1e
mov eax, dword [esi + 4]
test eax, eax
je 0x30017a0c
or dword [eax + 0xc0], 0x80
push str.ActionDispatcher:_setting_Sign_flag._n
call fcn.30009fe0
add esp, 4
jmp 0x30018af7
push str.FlipSignFlag
push edi
call fcn.30169d90
add esp, 8
test eax, eax
jne 0x30017a53
mov eax, dword [esi + 4]
test eax, eax
je 0x30017a41
xor dword [eax + 0xc0], 0x80
push str.ActionDispatcher:_flipping_Sign_flag._n
call fcn.30009fe0
add esp, 4
jmp 0x30018af7
push str.ClearCarryFlag
push edi
call fcn.30169d90
add esp, 8
test eax, eax
jne 0x30017a85
mov eax, dword [esi + 4]
test eax, eax
je 0x30017a73
and dword [eax + 0xc0], 0xfffffffe
push str.ActionDispatcher:_clearing_Carry_flag._n
call fcn.30009fe0
add esp, 4
jmp 0x30018af7
push str.SetCarryFlag
push edi
call fcn.30169d90
add esp, 8
test eax, eax
jne 0x30017ab7
mov eax, dword [esi + 4]
test eax, eax
je 0x30017aa5
or dword [eax + 0xc0], 1
push str.ActionDispatcher:_setting_Carry_flag._n
call fcn.30009fe0
add esp, 4
jmp 0x30018af7
push str.FlipCarryFlag
push edi
call fcn.30169d90
add esp, 8
test eax, eax
jne 0x30017ae9
mov eax, dword [esi + 4]
test eax, eax
je 0x30017ad7
xor dword [eax + 0xc0], 1
push str.ActionDispatcher:_flipping_Carry_flag._n
call fcn.30009fe0
add esp, 4
jmp 0x30018af7
push 3
push 0x301f7a34
push edi
call fcn.30169a61
add esp, 0xc
test eax, eax
jne 0x30017c48
test ebx, ebx
jne 0x30017be0
push 1
lea eax, [esp + 0x40]
push 0x301f7a38
push eax
call fcn.30169a61
add esp, 0xc
test eax, eax
jne 0x30017bce
mov eax, dword [esp + 0xd4]
cmp eax, 4
jbe 0x30017bb6
cmp dword [esp + 0x6c], ebx
je 0x30017ba3
push 5
lea eax, [esp + 0x74]
push 0x301f7a3c
push eax
call fcn.30169f50
add esp, 0xc
test eax, eax
jne 0x30017b9c
push 8
lea eax, [esp + 0x74]
push str.DWORD__E
push eax
call fcn.30169f50
add esp, 0xc
test eax, eax
je 0x30017b9c
push 9
lea eax, [esp + 0x74]
push str.DWORD__0x
push eax
call fcn.30169f50
mov edx, dword [esp + 0x2c]
add esp, 0xc
test eax, eax
mov eax, dword [esp + 0xd4]
jne 0x30017b96
mov eax, dword [eax + edx - 4]
mov ebx, dword [eax]
jmp 0x30017bf5
mov ebx, dword [eax + edx - 4]
jmp 0x30017bf5
mov eax, dword [esp + 0xd4]
cmp eax, 4
jbe 0x30017bb6
mov edx, dword [esp + 0x20]
mov ebx, dword [eax + edx - 4]
add ebx, eax
add ebx, edx
jmp 0x30017bf5
cmp eax, 2
jne 0x30018af7
mov edx, dword [esp + 0x20]
movsx eax, byte [edx + 1]
lea ebx, [edx + 2]
add ebx, eax
jmp 0x30017bf5
push str.ActionDispatcher:_No_target_specified_for_jmp_action._n
call fcn.30009fe0
add esp, 4
jmp 0x30018af7
mov edx, dword [esp + 0x20]
cmp ebx, 0x10000
jae 0x30017bf5
mov eax, dword [esi + 4]
add ebx, dword [eax + 0xb8]
test ebx, ebx
je 0x30018af7
sub esp, 0xa8
lea esi, [esp + 0xe0]
mov ecx, 0x2a
mov edi, esp
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
call fcn.30016590
mov esi, dword [esp + 0xbc]
push ebx
mov eax, dword [esi + 4]
mov dword [eax + 0xb8], ebx
lea eax, [esp + 0xe8]
push eax
push str._nActionDispatcher:_forcing_jmp_to_0x_p._n
call fcn.30009fe0
add esp, 0xb4
jmp 0x30018af7
push 5
push str.Count
push edi
call fcn.30169a61
add esp, 0xc
test eax, eax
jne 0x30017c92
test ebx, ebx
je 0x30017c80
mov dword [0x302727ac], eax
lea eax, [esp + 0x3c]
push ebx
push eax
push str.ActionDispatcher:_setting_count_to_0x_x._n
mov dword [0x3027255c], ebx
call fcn.30009fe0
jmp 0x30018af4
push str.ActionDispatcher:_Cannot_set_count___target_value_missing._n
call fcn.30009fe0
add esp, 4
jmp 0x30018af7
push 4
push str.Skip
push edi
call fcn.30169a61
add esp, 0xc
test eax, eax
jne 0x30017cec
sub esp, 0xa8
lea esi, [esp + 0xe0]
mov ecx, 0x2a
mov edi, esp
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0xc8]
call fcn.30016590
mov esi, dword [esp + 0xbc]
mov ecx, dword [esi + 4]
call fcn.30017150
push str._nActionDispatcher:_skipping_instruction._n
call fcn.30009fe0
add esp, 0xac
jmp 0x30018af7
push 3
push 0x301f7b64
push edi
call fcn.30169a61
add esp, 0xc
test eax, eax
jne 0x30017dc1
sub esp, 0xa8
lea esi, [esp + 0xe0]
mov ecx, 0x2a
mov edi, esp
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0xc8]
call fcn.30016590
mov esi, dword [esp + 0xbc]
add esp, 0xa8
mov dword [esp + 0x10], 0
mov eax, dword [esi + 4]
mov ebx, dword [eax + 0xb8]
test ebx, ebx
je 0x30017d69
lea eax, [esp + 0x10]
mov edx, 0x10
push eax
push 1
lea eax, [esp + 0xe8]
mov ecx, ebx
push eax
sub esp, 0xc
call fcn.30026000
add esp, 0x18
mov esi, dword [esp + 0x17c]
test esi, esi
je 0x30017daf
lea eax, [esp + 0x18]
push eax
push 0x40
push esi
push ebx
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
test esi, esi
je 0x30017d9e
mov ecx, esi
mov eax, 0x90909090
mov edx, ecx
mov edi, ebx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
lea eax, [esp + 0x18]
push eax
push dword [esp + 0x1c]
push esi
push ebx
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
push str._nActionDispatcher:_nopping_instruction._n
call fcn.30009fe0
add esp, 4
jmp 0x30018af7
push 4
push str.Wret
push edi
call fcn.30169a61
add esp, 0xc
test eax, eax
jne 0x30017e45
mov dword [esp + 0xc], eax
mov eax, dword [esi + 4]
mov edi, dword [eax + 0xb8]
test edi, edi
je 0x30017e07
lea eax, [esp + 0xc]
mov edx, 0x10
push eax
push 1
lea eax, [esp + 0x190]
mov ecx, edi
push eax
sub esp, 0xc
call fcn.30026000
add esp, 0x18
mov ebx, dword [esp + 0x224]
test ebx, ebx
je 0x30017e33
mov esi, dword [sym.imp.KERNEL32.dll_VirtualProtect]
lea eax, [esp + 0x14]
push eax
push 0x40
push ebx
push edi
call esi
lea eax, [esp + 0x14]
mov byte [edi], 0xc3
push eax
push dword [esp + 0x18]
push ebx
push edi
call esi
push str._nActionDispatcher:_ret_written._n
call fcn.30009fe0
add esp, 4
jmp 0x30018af7
push 4
push str.GoTo
push edi
call fcn.30169a61
add esp, 0xc
test eax, eax
jne 0x30017ee8
test ebx, ebx
je 0x30017ed6
sub esp, 0xa8
lea esi, [esp + 0xe0]
mov ecx, 0x2a
mov edi, esp
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0xc8]
call fcn.30016590
mov eax, dword [esp + 0xc0]
add esp, 0xa8
test eax, eax
je 0x30017eb6
inc eax
push eax
push ebx
push str._nActionDispatcher:_GoTo_target_0x_p___s_._n
call fcn.30009fe0
mov esi, dword [esp + 0x20]
add esp, 0xc
mov eax, dword [esi + 4]
mov dword [eax + 0xb8], ebx
jmp 0x30018af7
push ebx
push str._nActionDispatcher:_GoTo_target_0x_p._n
call fcn.30009fe0
mov esi, dword [esp + 0x1c]
add esp, 8
mov eax, dword [esi + 4]
mov dword [eax + 0xb8], ebx
jmp 0x30018af7
push str.ActionDispatcher:_Cannot_GoTo___target_value_missing._n
call fcn.30009fe0
add esp, 4
jmp 0x30018af7
push 4
push str.Call
push edi
call fcn.30169a61
add esp, 0xc
test eax, eax
jne 0x30017f9f
test ebx, ebx
je 0x30017f8d
sub esp, 0xa8
lea esi, [esp + 0xe0]
mov ecx, 0x2a
mov edi, esp
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0xc8]
mov ecx, edi
call fcn.30016590
mov eax, dword [esp + 0xc0]
add esp, 0xa8
test eax, eax
je 0x30017f4f
inc eax
push eax
push ebx
push str._nActionDispatcher:_Call_target_0x_p___s_._n
call fcn.30009fe0
add esp, 0xc
jmp 0x30017f5d
push ebx
push str._nActionDispatcher:_Call_target_0x_p._n
call fcn.30009fe0
add esp, 8
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0xd4]
add ecx, edi
mov eax, dword [esi + 4]
add dword [eax + 0xc4], 0xfffffffc
mov eax, dword [esi + 4]
mov eax, dword [eax + 0xc4]
mov dword [eax], ecx
mov eax, dword [esi + 4]
mov dword [eax + 0xb8], ebx
jmp 0x30018af7
push str.ActionDispatcher:_Cannot_call___target_value_missing._n
call fcn.30009fe0
add esp, 4
jmp 0x30018af7
push 4
push str.Push
push edi
call fcn.30169a61
add esp, 0xc
test eax, eax
jne 0x30017fff
test ebx, ebx
jne 0x30017fcf
cmp dword [esp + 0xc], ebx
jne 0x30017fcf
push str.ActionDispatcher:_Cannot_push___target_value_missing._n
call fcn.30009fe0
add esp, 4
jmp 0x30018af7
mov eax, dword [esi + 4]
add dword [eax + 0xc4], 0xfffffffc
mov eax, dword [esi + 4]
mov eax, dword [eax + 0xc4]
mov dword [eax], ebx
mov ecx, dword [esi + 4]
call fcn.30017150
push ebx
push str.ActionDispatcher:_Pushed_0x_x_n
call fcn.30009fe0
add esp, 8
jmp 0x30018af7
push 3
push 0x301f7d48
push edi
call fcn.30169a61
add esp, 0xc
test eax, eax
jne 0x3001802f
mov eax, dword [esi + 4]
push str.ActionDispatcher:_Popped_the_stack
add dword [eax + 0xc4], 4
call fcn.30009fe0
add esp, 4
jmp 0x30018af7
push 3
push 0x301f7d70
push edi
call fcn.30169a61
add esp, 0xc
test eax, eax
jne 0x300180f4
cmp ebx, 0xa
jae 0x30018af7
test ebx, ebx
jne 0x30018059
mov ebx, 1
mov eax, dword [esi + 4]
mov eax, dword [eax + 0xc4]
mov eax, dword [eax + ebx*4 - 4]
mov dword [esp + 0x1c], eax
test eax, eax
je 0x30018af7
sub esp, 0xa8
lea esi, [esp + 0xe0]
mov ecx, 0x2a
mov edi, esp
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0xc8]
call fcn.30016590
mov edi, dword [esp + 0xc4]
add esp, 0xa8
push edi
cmp ebx, 1
jbe 0x300180b7
push ebx
push str._nActionDispatcher:_Return___d__to_0x_p._n
call fcn.30009fe0
add esp, 0xc
jmp 0x300180c4
push str._nActionDispatcher:_Return_to_0x_p._n
call fcn.30009fe0
add esp, 8
mov esi, dword [esp + 0x14]
mov eax, dword [esi + 4]
mov dword [eax + 0xb8], edi
test ebx, ebx
je 0x30018af7
lea esp, [esp]
mov eax, dword [esi + 4]
add dword [eax + 0xc4], 4
sub ebx, 1
jne 0x300180e0
jmp 0x30018af7
push 6
push str.Unwind
push edi
call fcn.30169a61
add esp, 0xc
test eax, eax
jne 0x300181bb
cmp ebx, 0xa
jae 0x30018af7
sub esp, 0xa8
lea esi, [esp + 0xe0]
mov ecx, 0x2a
mov edi, esp
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0xc8]
call fcn.30016590
add esp, 0xa8
test ebx, ebx
jne 0x30018146
mov ebx, 1
mov esi, dword [esp + 0x14]
mov edx, ebx
lea esp, [esp]
mov ecx, dword [esi + 4]
mov eax, dword [ecx + 0xb4]
mov eax, dword [eax + 4]
mov dword [ecx + 0xb8], eax
mov ecx, dword [esi + 4]
mov eax, dword [ecx + 0xb4]
add eax, 8
mov dword [ecx + 0xc4], eax
mov ecx, dword [esi + 4]
mov eax, dword [ecx + 0xb4]
mov eax, dword [eax]
mov dword [ecx + 0xb4], eax
sub edx, 1
jne 0x30018150
mov eax, dword [esi + 4]
mov eax, dword [eax + 0xb8]
push eax
cmp ebx, 1
jbe 0x300181a9
push ebx
push str._nActionDispatcher:_Unwind__d_frames_to_0x_p._n
call fcn.30009fe0
jmp 0x30018af4
push str._nActionDispatcher:_Unwind_to_previous_frame_at_0x_p._n
call fcn.30009fe0
add esp, 8
jmp 0x30018af7
push 6
push str.hooks:
push edi
call fcn.30169a61
add esp, 0xc
test eax, eax
jne 0x30018218
mov al, byte [edi + 6]
cmp al, 0x31
jne 0x300181f3
push str.ActionDispatcher:_Enabling_hooks._n
call fcn.30009fe0
add esp, 4
call fcn.300293b0
mov dword [eax], 0
jmp 0x30018af7
cmp al, 0x30
jne 0x30018af7
push str.ActionDispatcher:_Disabling_hooks._n
call fcn.30009fe0
add esp, 4
call fcn.300293b0
mov dword [eax], 1
jmp 0x30018af7
push str.Stop
push edi
call fcn.30169d90
add esp, 8
test eax, eax
jne 0x3001829f
sub esp, 0xa8
lea esi, [esp + 0xe0]
mov ecx, 0x2a
mov edi, esp
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0xc8]
call fcn.30016590
push str._nActionDispatcher:_stopping_trace._n
call fcn.30009fe0
mov esi, dword [esp + 0xc0]
add esp, 0xac
mov ecx, dword [esi + 4]
call fcn.30007530
push 0x2cc
push 0
push 0x30245650
call fcn.30162560
mov dword [0x30272c64], 0
mov dword [0x30272544], 1
mov dword [0x30272c58], 0
jmp 0x30018af4
push 6
push str.Print:
push edi
call fcn.30169a61
add esp, 0xc
test eax, eax
jne 0x30018307
push 0x104
push eax
lea eax, [esp + 0x238]
push eax
call fcn.30162560
add esp, 0xc
test ebx, ebx
je 0x300182f4
push ecx
lea edx, [esp + 0x234]
mov ecx, ebx
call fcn.30016780
add esp, 4
test eax, eax
je 0x300182f4
push ebx
push ebx
push str.ActionDispatcher:_Print_0x_p_____s_n
call fcn.30009fe0
jmp 0x30018af4
push ebx
push str.ActionDispatcher:_Nothing_to_print_at_0x_p_n
call fcn.30009fe0
add esp, 8
jmp 0x30018af7
push str.DumpImage
push edi
call fcn.30169d90
add esp, 8
test eax, eax
jne 0x30018416
mov ecx, dword [esi + 4]
mov ecx, dword [ecx + 0xb8]
call fcn.30002320
mov ecx, dword [0x302704d4]
mov esi, eax
mov edx, dword [0x302739d0]
test ecx, ecx
je 0x30018342
mov dword [edx + 0x10], ecx
jmp 0x30018373
mov eax, dword [0x302704d8]
test eax, eax
je 0x30018350
mov dword [edx + 0x10], eax
jmp 0x30018373
mov eax, dword [0x302704dc]
test eax, eax
je 0x3001835e
mov dword [edx + 0x10], eax
jmp 0x30018373
mov eax, dword [0x302704e0]
test eax, eax
je 0x3001836c
mov dword [edx + 0x10], eax
jmp 0x30018373
mov dword [edx + 0x10], 8
mov ecx, 0x302705e8
lea edi, [ecx + 1]
jmp 0x30018380
mov al, byte [ecx]
inc ecx
test al, al
jne 0x30018380
sub ecx, edi
je 0x30018394
mov dword [edx + 0x24], 0x302705e8
jmp 0x300183f2
mov ecx, 0x302706ec
lea edi, [ecx + 1]
lea esp, [esp]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x300183a0
sub ecx, edi
je 0x300183b4
mov dword [edx + 0x24], 0x302706ec
jmp 0x300183f2
mov ecx, 0x302707f0
lea edi, [ecx + 1]
lea esp, [esp]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x300183c0
sub ecx, edi
je 0x300183d4
mov dword [edx + 0x24], 0x302707f0
jmp 0x300183f2
mov ecx, 0x302708f4
lea edi, [ecx + 1]
lea esp, [esp]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x300183e0
sub ecx, edi
je 0x300183f2
mov dword [edx + 0x24], 0x302708f4
mov ecx, esi
call fcn.30004c60
test eax, eax
mov eax, str.ActionDispatcher:_Dumped_breaking_module_at_0x_p._n
jne 0x30018407
mov eax, str.ActionDispatcher:_Failed_to_dump_breaking_module_at_0x_p._n
push esi
push eax
call fcn.30009fe0
add esp, 8
jmp 0x30018af7
push 9
push str.DumpSize:
push edi
call fcn.30169a61
add esp, 0xc
test eax, eax
jne 0x30018459
test ebx, ebx
je 0x30018447
push ebx
push str.ActionDispatcher:_Dump_size_set_to_0x_x._n
mov dword [0x302729f0], ebx
call fcn.30009fe0
add esp, 8
jmp 0x30018af7
push str.ActionDispatcher:_Failed_to_set_dump_size._n
call fcn.30009fe0
add esp, 4
jmp 0x30018af7
push 8
push str.SetDump:
push edi
call fcn.30169a61
add esp, 0xc
test eax, eax
jne 0x300184ba
test ebx, ebx
je 0x300184a8
mov eax, dword [esp + 0x2c]
mov dword [0x302728d0], ebx
test eax, eax
jne 0x30018492
push ebx
push str.SetDump:_Dump_address_set_to_0x_p._n
call fcn.30009fe0
add esp, 8
jmp 0x30018af7
push eax
push ebx
push str.SetDump:_Dump_address_set_to_0x_p__size_0x_x_n
mov dword [0x302729f0], eax
call fcn.30009fe0
jmp 0x30018af4
push str.SetDump:_Failed_to_set_dump_address._n
call fcn.30009fe0
add esp, 4
jmp 0x30018af7
push str.Dump
push edi
call fcn.30169d90
add esp, 8
test eax, eax
je 0x300188f7
push 5
push str.Dump:
push edi
call fcn.30169a61
add esp, 0xc
test eax, eax
je 0x300188f7
push str.Step2OEP
push edi
call fcn.30169d90
add esp, 8
test eax, eax
jne 0x30018516
mov ecx, dword [esi + 4]
mov edx, 0x300171c0
call fcn.30007500
mov dword [0x3027255c], 0
jmp 0x30018af7
push str.Scan
push edi
call fcn.30169d90
add esp, 8
test eax, eax
jne 0x30018563
mov ecx, dword [esp + 0x20]
call fcn.30002320
mov esi, eax
test ebx, ebx
je 0x30018540
mov ecx, ebx
call fcn.30002320
mov esi, eax
push esi
push str.ActionDispatcher:_Scanning_region_at_0x_p._n
call fcn.30009fe0
add esp, 8
mov ecx, esi
call fcn.30002410
mov edx, eax
mov ecx, esi
call fcn.3001e090
jmp 0x30018af7
push 6
push str.SetBp0
push edi
call fcn.30169a61
add esp, 0xc
test eax, eax
jne 0x300185c6
mov ecx, dword [esp + 0x20]
call fcn.30002320
test ebx, ebx
je 0x300185b4
cmp ebx, eax
jae 0x3001858a
add ebx, eax
push ecx
mov ecx, dword [esi + 4]
xor edx, edx
push 0x30019e00
push 0
push 0
push ebx
push 0
call fcn.30007560
push ebx
push str.SetBp0:_Breakpoint_0_set_to_0x_p._n
call fcn.30009fe0
add esp, 0x20
jmp 0x30018af7
push str.SetBp0:_Failed_to_obtain_breakpoint_address._n
call fcn.30009fe0
add esp, 4
jmp 0x30018af7
push 6
push str.SetBp1
push edi
call fcn.30169a61
add esp, 0xc
test eax, eax
jne 0x3001862c
mov ecx, dword [esp + 0x20]
call fcn.30002320
test ebx, ebx
je 0x3001861a
cmp ebx, eax
jae 0x300185ed
add ebx, eax
push ecx
mov ecx, dword [esi + 4]
mov edx, 1
push 0x30019e00
push 0
push 0
push ebx
push 0
call fcn.30007560
push ebx
push str.SetBp1:_Breakpoint_1_set_to_0x_p._n
call fcn.30009fe0
add esp, 0x20
jmp 0x30018af7
push str.SetBp1:_Failed_to_obtain_breakpoint_address._n
call fcn.30009fe0
add esp, 4
jmp 0x30018af7
push 6
push str.SetBp2
push edi
call fcn.30169a61
add esp, 0xc
test eax, eax
jne 0x30018692
mov ecx, dword [esp + 0x20]
call fcn.30002320
test ebx, ebx
je 0x30018680
cmp ebx, eax
jae 0x30018653
add ebx, eax
push ecx
mov ecx, dword [esi + 4]
mov edx, 2
push 0x30019e00
push 0
push 0
push ebx
push 0
call fcn.30007560
push ebx
push str.SetBp2:_Breakpoint_2_set_to_0x_p._n
call fcn.30009fe0
add esp, 0x20
jmp 0x30018af7
push str.SetBp2:_Failed_to_obtain_breakpoint_address._n
call fcn.30009fe0
add esp, 4
jmp 0x30018af7
push 6
push str.SetBp3
push edi
call fcn.30169a61
add esp, 0xc
test eax, eax
jne 0x300186f8
mov ecx, dword [esp + 0x20]
call fcn.30002320
test ebx, ebx
je 0x300186e6
cmp ebx, eax
jae 0x300186b9
add ebx, eax
push ecx
mov ecx, dword [esi + 4]
mov edx, 3
push 0x30019e00
push 0
push 0
push ebx
push 0
call fcn.30007560
push ebx
push str.SetBp3:_Breakpoint_3_set_to_0x_p._n
call fcn.30009fe0
add esp, 0x20
jmp 0x30018af7
push str.SetBp3:_Failed_to_obtain_breakpoint_address._n
call fcn.30009fe0
add esp, 4
jmp 0x30018af7
push str.DumpStack
push edi
call fcn.30169d90
add esp, 8
test eax, eax
jne 0x300187ef
mov ecx, dword [esi + 4]
lea edx, [esp + 0x2c]
mov esi, dword [ecx + 0xc4]
mov edi, dword [ecx + 0xb4]
mov ecx, dword [ecx + 0xb8]
call fcn.3004c8f0
mov eax, dword fs:[4]
sub eax, esi
and eax, 0xfffffffc
cmp eax, 0x190
jbe 0x30018af7
mov edx, 0x64
mov ecx, esi
call fcn.3004c150
test al, al
je 0x30018af7
mov ebx, 0x64
jmp 0x30018760
mov ecx, dword [esi]
test ecx, ecx
je 0x300187de
lea edx, [esp + 0x2c]
call fcn.3004c8f0
lea ecx, [edi + 4]
cmp esi, ecx
jne 0x300187a8
mov edi, dword [edi]
test eax, eax
je 0x30018793
push dword [esp + 0x2c]
push eax
push dword [esi]
push esi
push str.0x_p:_t_0x_p____s::0x_x_t___n
call fcn.30009fe0
add esp, 0x14
jmp 0x300187de
mov ecx, dword [esi]
call fcn.300027c0
test eax, eax
je 0x300187de
push dword [esi]
push esi
push str.0x_p:_t_0x_p_t___n
jmp 0x300187d6
test eax, eax
je 0x300187c3
push dword [esp + 0x2c]
push eax
push dword [esi]
push esi
push str.0x_p:_t_0x_p____s::0x_x_n
call fcn.30009fe0
add esp, 0x14
jmp 0x300187de
mov ecx, dword [esi]
call fcn.300027c0
test eax, eax
je 0x300187de
push dword [esi]
push esi
push str.0x_p:_t_0x_p_n
call fcn.30009fe0
add esp, 0xc
add esi, 4
sub ebx, 1
jne 0x30018760
jmp 0x30018af7
push 6
push str.String
push edi
call fcn.30169a61
add esp, 0xc
test eax, eax
jne 0x3001883e
test ebx, ebx
je 0x3001882c
push ebx
push str.String_captured_at_0x_p:__
call fcn.30009fe0
mov ecx, ebx
call fcn.300169a0
push ebx
push 0x301f83cc
call fcn.30009fe0
add esp, 0x10
jmp 0x30018af7
push str.String:_Failed_to_obtain_string_address._n
call fcn.30009fe0
add esp, 4
jmp 0x30018af7
push 5
push 0x301f83fc
push edi
call fcn.30169a61
add esp, 0xc
test eax, eax
jne 0x300188a1
test ebx, ebx
je 0x3001888f
push ebx
push str.ActionDispatcher:_Sleeping_for__d_milliseconds._n
call fcn.30009fe0
add esp, 8
mov eax, ebx
cdq
push 0xffffffffffffffff
push 0xffffd8f0
push edx
push eax
call fcn.301602e0
mov dword [esp + 0x20], eax
lea eax, [esp + 0x20]
push eax
push 0
mov dword [esp + 0x2c], edx
call dword [0x30273464]
jmp 0x30018af7
push str.ActionDispatcher:_Sleep_duration_not_supploed._n
call fcn.30009fe0
add esp, 4
jmp 0x30018af7
push str.Exit
push edi
call fcn.30169d90
add esp, 8
test eax, eax
jne 0x300188ce
push str.ActionDispatcher:_Terminating_process._n
call fcn.30009fe0
add esp, 4
push 1
push 0
call fcn.30039290
jmp 0x30018af7
push str.custom
push edi
call fcn.30169d90
add esp, 8
test eax, eax
je 0x30018af7
push edi
push str.ActionDispatcher:_Unrecognised_action:___s__n
call fcn.30009fe0
add esp, 8
jmp 0x30018af7
mov eax, dword [0x302704d4]
mov edx, dword [0x302739d0]
test eax, eax
jne 0x30018921
mov eax, dword [0x302704d8]
test eax, eax
jne 0x30018921
mov eax, dword [0x302704dc]
test eax, eax
jne 0x30018921
mov eax, dword [0x302704e0]
test eax, eax
je 0x30018924
mov dword [edx + 0x10], eax
mov ecx, 0x302705e8
lea edi, [ecx + 1]
lea esp, [esp]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x30018930
sub ecx, edi
je 0x30018944
mov dword [edx + 0x24], 0x302705e8
jmp 0x300189a2
mov ecx, 0x302706ec
lea edi, [ecx + 1]
lea esp, [esp]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x30018950
sub ecx, edi
je 0x30018964
mov dword [edx + 0x24], 0x302706ec
jmp 0x300189a2
mov ecx, 0x302707f0
lea edi, [ecx + 1]
lea esp, [esp]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x30018970
sub ecx, edi
je 0x30018984
mov dword [edx + 0x24], 0x302707f0
jmp 0x300189a2
mov ecx, 0x302708f4
lea edi, [ecx + 1]
lea esp, [esp]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x30018990
sub ecx, edi
je 0x300189a9
mov dword [edx + 0x24], 0x302708f4
mov dword [edx + 0x10], 0x100
mov ecx, 0x30272580
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x300189b1
sub ecx, edx
je 0x300189ef
mov ecx, dword [esi + 4]
mov edx, 0x30272580
call fcn.30016ad0
mov dword [0x302729f0], eax
test eax, eax
jne 0x300189f4
mov ecx, dword [esp + 0x18]
test ecx, ecx
je 0x300189f4
push eax
push eax
lea eax, [ecx + 1]
push eax
call fcn.3016b8f2
add esp, 0xc
mov dword [0x302729f0], eax
jmp 0x300189f4
mov eax, dword [0x302729f0]
test ebx, ebx
jne 0x30018a04
mov ecx, dword [0x302728d0]
test ecx, ecx
je 0x30018a04
mov ebx, ecx
mov ecx, dword [esp + 0x2c]
test ecx, ecx
je 0x30018a25
push ecx
push str.ActionDispatcher:_Dump_size_set_to_0x_x_n
mov dword [0x302729f0], ecx
call fcn.30009fe0
mov eax, dword [0x302729f0]
add esp, 8
test ebx, ebx
je 0x30018ad4
test eax, eax
je 0x30018aa1
cmp eax, 0x1000000
jae 0x30018aa1
mov ecx, dword [0x3027399c]
test ecx, ecx
je 0x30018a49
dec ecx
mov dword [0x3027399c], ecx
mov edx, eax
mov ecx, ebx
call fcn.30004bf0
push dword [0x302729f0]
push ebx
test eax, eax
je 0x30018a7f
push str.ActionDispatcher:_Dumped_region_at_0x_p_size_0x_x._n
call fcn.30009fe0
add esp, 0xc
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x330]
xor ecx, esp
call fcn.3015f3bd
mov esp, ebp
pop ebp
ret
push str.ActionDispatcher:_Failed_to_dump_region_at_0x_p_size_0x_x._n
call fcn.30009fe0
add esp, 0xc
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x330]
xor ecx, esp
call fcn.3015f3bd
mov esp, ebp
pop ebp
ret
mov ecx, ebx
call fcn.30004c60
test eax, eax
je 0x30018acf
push ebx
push str.ActionDispatcher:_Dumped_region_at_0x_p._n
call fcn.30009fe0
add esp, 8
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x330]
xor ecx, esp
call fcn.3015f3bd
mov esp, ebp
pop ebp
ret
mov eax, dword [0x302729f0]
push eax
push ebx
push str.ActionDispatcher:_Failed_to_dump_region_at_0x_p__size_0x_x._n
call fcn.30009fe0
mov dword [0x302728d0], 0
mov dword [0x302729f0], 0
add esp, 0xc
mov ecx, dword [esp + 0x33c]
inc dword [0x302729ec]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.3015f3bd
mov esp, ebp
pop ebp
ret