Function at 0x30017090
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 [0x3021ae88]
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 [0x302714b4], 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.3015ffb0
add esp, 8
mov dword [esp + 0x18], eax
test eax, eax
je 0x300172d0
lea ebx, [eax + 1]
push 0x3a
push ebx
call fcn.3015ffb0
add esp, 8
mov dword [esp + 0x1c], eax
test eax, eax
je 0x3001726e
cmp byte [eax + 1], 0x3a
jne 0x3001726e
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 0x300171b1
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 0x30017259
call fcn.30169f00
push ebx
mov dword [eax], ebx
lea eax, [esp + 0x38]
push eax
push dword [esp + 0x18]
call fcn.3016a292
add esp, 0xc
mov ebx, eax
call fcn.30169f00
cmp dword [eax], 0
jne 0x3001719a
mov eax, dword [esp + 0x10]
cmp dword [esp + 0x34], eax
je 0x3001719a
mov dword [esp + 0xc], 1
jmp 0x300171d3
mov ebx, dword [esp + 0x18]
inc ebx
push ebx
push str.ActionDispatcher:_Failed_to_get_target:__s._n
call fcn.30009fa0
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.30016a60
mov ebx, eax
mov eax, dword [esp + 0x1c]
mov byte [eax], 0x3a
mov eax, dword [esp + 0x10]
test ebx, ebx
je 0x300172d0
mov ecx, dword [esi + 4]
mov edx, eax
mov dword [esp + 0xc], 1
call fcn.30016a60
mov dword [esp + 0x2c], eax
test eax, eax
jne 0x300172d0
call fcn.30169f00
push 0
mov dword [eax], 0
lea eax, [esp + 0x34]
push eax
push dword [esp + 0x18]
call fcn.3016a292
add esp, 0xc
mov dword [esp + 0x2c], eax
call fcn.30169f00
cmp dword [eax], 0
mov eax, dword [esp + 0x10]
jne 0x30017233
cmp dword [esp + 0x30], eax
jne 0x300172d0
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov dword [esp + 0x2c], eax
test eax, eax
jne 0x300172d0
push dword [esp + 0x10]
push str.ActionDispatcher:_Failed_to_get_target_arg:__s._n
call fcn.30009fa0
add esp, 8
jmp 0x300172d0
mov eax, dword [esp + 0x10]
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], eax
jmp 0x300171d3
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov ebx, eax
test ebx, ebx
jne 0x300172c8
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + 4]
lea edx, [edx + 1]
call fcn.30016a60
mov ebx, eax
test ebx, ebx
jne 0x300172c8
call fcn.30169f00
push ebx
mov dword [eax], ebx
lea eax, [esp + 0x20]
push eax
mov eax, dword [esp + 0x20]
inc eax
push eax
call fcn.3016a292
add esp, 0xc
mov ebx, eax
call fcn.30169f00
cmp dword [eax], 0
jne 0x30017304
mov ecx, dword [esp + 0x18]
lea eax, [ecx + 1]
mov dword [esp + 0x10], eax
cmp dword [esp + 0x1c], eax
je 0x3001730d
mov dword [esp + 0xc], 1
push 6
push str.SetEax
push edi
call fcn.30168401
add esp, 0xc
test eax, eax
jne 0x30017383
test ebx, ebx
jne 0x3001735f
cmp dword [esp + 0xc], ebx
jne 0x3001735f
push str.ActionDispatcher:_Cannot_set_EAX___target_value_missing._n
call fcn.30009fa0
add esp, 4
jmp 0x300187f7
mov eax, dword [esp + 0x18]
inc eax
mov dword [esp + 0x10], eax
call fcn.30169f00
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.3016a200
add esp, 0xc
mov ebx, eax
call fcn.30169f00
cmp dword [eax], 0
jne 0x30017345
mov eax, dword [esp + 0x10]
cmp dword [esp + 0x1c], eax
jne 0x300172c8
mov ecx, dword [esp + 0x18]
lea eax, [ecx + 1]
push eax
push str.ActionDispatcher:_Failed_to_get_target:__s._n
call fcn.30009fa0
add esp, 8
jmp 0x300172d0
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.30009fa0
add esp, 8
jmp 0x300187f7
push 6
push str.SetEbx
push edi
call fcn.30168401
add esp, 0xc
test eax, eax
jne 0x300173d7
test ebx, ebx
jne 0x300173b3
cmp dword [esp + 0xc], ebx
jne 0x300173b3
push str.ActionDispatcher:_Cannot_set_EBX___target_value_missing._n
call fcn.30009fa0
add esp, 4
jmp 0x300187f7
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.30009fa0
add esp, 8
jmp 0x300187f7
push 6
push str.SetEcx
push edi
call fcn.30168401
add esp, 0xc
test eax, eax
jne 0x3001742b
test ebx, ebx
jne 0x30017407
cmp dword [esp + 0xc], ebx
jne 0x30017407
push str.ActionDispatcher:_Cannot_set_ECX___target_value_missing._n
call fcn.30009fa0
add esp, 4
jmp 0x300187f7
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.30009fa0
add esp, 8
jmp 0x300187f7
push 6
push str.SetEdx
push edi
call fcn.30168401
add esp, 0xc
test eax, eax
jne 0x3001747f
test ebx, ebx
jne 0x3001745b
cmp dword [esp + 0xc], ebx
jne 0x3001745b
push str.ActionDispatcher:_Cannot_set_EDX___target_value_missing._n
call fcn.30009fa0
add esp, 4
jmp 0x300187f7
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.30009fa0
add esp, 8
jmp 0x300187f7
push 6
push str.SetEsi
push edi
call fcn.30168401
add esp, 0xc
test eax, eax
jne 0x300174d3
test ebx, ebx
jne 0x300174af
cmp dword [esp + 0xc], ebx
jne 0x300174af
push str.ActionDispatcher:_Cannot_set_ESI___target_value_missing._n
call fcn.30009fa0
add esp, 4
jmp 0x300187f7
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.30009fa0
add esp, 8
jmp 0x300187f7
push 6
push str.SetEdi
push edi
call fcn.30168401
add esp, 0xc
test eax, eax
jne 0x30017527
test ebx, ebx
jne 0x30017503
cmp dword [esp + 0xc], ebx
jne 0x30017503
push str.ActionDispatcher:_Cannot_set_EDI___target_value_missing._n
call fcn.30009fa0
add esp, 4
jmp 0x300187f7
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.30009fa0
add esp, 8
jmp 0x300187f7
push 6
push str.SetPtr
push edi
call fcn.30168401
add esp, 0xc
test eax, eax
jne 0x3001756f
test ebx, ebx
jne 0x30017558
cmp dword [esp + 0xc], ebx
jne 0x30017558
push ebx
push str.ActionDispatcher:_Cannot_set_0x_p_pointer_value___target_missing._n
call fcn.30009fa0
add esp, 8
jmp 0x300187f7
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.30009fa0
jmp 0x300187f4
push 6
push str.SetSrc
push edi
call fcn.30168401
add esp, 0xc
test eax, eax
jne 0x300175d5
test ebx, ebx
jne 0x300175a1
cmp dword [esp + 0xc], ebx
jne 0x300175a1
push 0
push str.ActionDispatcher:_Cannot_set_operand_value___target_missing._n
call fcn.30009fa0
add esp, 8
jmp 0x300187f7
lea eax, [esp + 0x70]
push 0x2c
push eax
call fcn.3015ffb0
mov edi, eax
add esp, 8
test edi, edi
je 0x300187f7
mov byte [edi], 0
lea edx, [esp + 0x70]
mov ecx, dword [esi + 4]
push ebx
call fcn.30016e70
add esp, 4
mov byte [edi], 0x2c
jmp 0x300187f7
push 6
push str.SetDst
push edi
call fcn.30168401
add esp, 0xc
test eax, eax
jne 0x3001761e
test ebx, ebx
jne 0x300175f3
cmp dword [esp + 0xc], ebx
je 0x3001758d
lea eax, [esp + 0x70]
push 0x2c
push eax
call fcn.3015ffb0
add esp, 8
test eax, eax
je 0x300187f7
mov ecx, dword [esi + 4]
lea edx, [eax + 2]
push ebx
call fcn.30016e70
add esp, 4
jmp 0x300187f7
push str.ClearZeroFlag
push edi
call fcn.30168730
add esp, 8
test eax, eax
jne 0x30017650
mov eax, dword [esi + 4]
test eax, eax
je 0x3001763e
and dword [eax + 0xc0], 0xffffffbf
push str.ActionDispatcher:_clearing_zero_flag._n
call fcn.30009fa0
add esp, 4
jmp 0x300187f7
push str.SetZeroFlag
push edi
call fcn.30168730
add esp, 8
test eax, eax
jne 0x30017682
mov eax, dword [esi + 4]
test eax, eax
je 0x30017670
or dword [eax + 0xc0], 0x40
push str.ActionDispatcher:_setting_zero_flag._n
call fcn.30009fa0
add esp, 4
jmp 0x300187f7
push str.FlipZeroFlag
push edi
call fcn.30168730
add esp, 8
test eax, eax
jne 0x300176b4
mov eax, dword [esi + 4]
test eax, eax
je 0x300176a2
xor dword [eax + 0xc0], 0x40
push str.ActionDispatcher:_flipping_zero_flag._n
call fcn.30009fa0
add esp, 4
jmp 0x300187f7
push str.ClearSignFlag
push edi
call fcn.30168730
add esp, 8
test eax, eax
jne 0x300176e9
mov eax, dword [esi + 4]
test eax, eax
je 0x300176d7
and dword [eax + 0xc0], 0xffffff7f
push str.ActionDispatcher:_clearing_Sign_flag._n
call fcn.30009fa0
add esp, 4
jmp 0x300187f7
push str.SetSignFlag
push edi
call fcn.30168730
add esp, 8
test eax, eax
jne 0x3001771e
mov eax, dword [esi + 4]
test eax, eax
je 0x3001770c
or dword [eax + 0xc0], 0x80
push str.ActionDispatcher:_setting_Sign_flag._n
call fcn.30009fa0
add esp, 4
jmp 0x300187f7
push str.FlipSignFlag
push edi
call fcn.30168730
add esp, 8
test eax, eax
jne 0x30017753
mov eax, dword [esi + 4]
test eax, eax
je 0x30017741
xor dword [eax + 0xc0], 0x80
push str.ActionDispatcher:_flipping_Sign_flag._n
call fcn.30009fa0
add esp, 4
jmp 0x300187f7
push str.ClearCarryFlag
push edi
call fcn.30168730
add esp, 8
test eax, eax
jne 0x30017785
mov eax, dword [esi + 4]
test eax, eax
je 0x30017773
and dword [eax + 0xc0], 0xfffffffe
push str.ActionDispatcher:_clearing_Carry_flag._n
call fcn.30009fa0
add esp, 4
jmp 0x300187f7
push str.SetCarryFlag
push edi
call fcn.30168730
add esp, 8
test eax, eax
jne 0x300177b7
mov eax, dword [esi + 4]
test eax, eax
je 0x300177a5
or dword [eax + 0xc0], 1
push str.ActionDispatcher:_setting_Carry_flag._n
call fcn.30009fa0
add esp, 4
jmp 0x300187f7
push str.FlipCarryFlag
push edi
call fcn.30168730
add esp, 8
test eax, eax
jne 0x300177e9
mov eax, dword [esi + 4]
test eax, eax
je 0x300177d7
xor dword [eax + 0xc0], 1
push str.ActionDispatcher:_flipping_Carry_flag._n
call fcn.30009fa0
add esp, 4
jmp 0x300187f7
push 3
push 0x301f6a9c
push edi
call fcn.30168401
add esp, 0xc
test eax, eax
jne 0x30017948
test ebx, ebx
jne 0x300178e0
push 1
lea eax, [esp + 0x40]
push 0x301f6aa0
push eax
call fcn.30168401
add esp, 0xc
test eax, eax
jne 0x300178ce
mov eax, dword [esp + 0xd4]
cmp eax, 4
jbe 0x300178b6
cmp dword [esp + 0x6c], ebx
je 0x300178a3
push 5
lea eax, [esp + 0x74]
push 0x301f6aa4
push eax
call fcn.301688f0
add esp, 0xc
test eax, eax
jne 0x3001789c
push 8
lea eax, [esp + 0x74]
push str.DWORD__E
push eax
call fcn.301688f0
add esp, 0xc
test eax, eax
je 0x3001789c
push 9
lea eax, [esp + 0x74]
push str.DWORD__0x
push eax
call fcn.301688f0
mov edx, dword [esp + 0x2c]
add esp, 0xc
test eax, eax
mov eax, dword [esp + 0xd4]
jne 0x30017896
mov eax, dword [eax + edx - 4]
mov ebx, dword [eax]
jmp 0x300178f5
mov ebx, dword [eax + edx - 4]
jmp 0x300178f5
mov eax, dword [esp + 0xd4]
cmp eax, 4
jbe 0x300178b6
mov edx, dword [esp + 0x20]
mov ebx, dword [eax + edx - 4]
add ebx, eax
add ebx, edx
jmp 0x300178f5
cmp eax, 2
jne 0x300187f7
mov edx, dword [esp + 0x20]
movsx eax, byte [edx + 1]
lea ebx, [edx + 2]
add ebx, eax
jmp 0x300178f5
push str.ActionDispatcher:_No_target_specified_for_jmp_action._n
call fcn.30009fa0
add esp, 4
jmp 0x300187f7
mov edx, dword [esp + 0x20]
cmp ebx, 0x10000
jae 0x300178f5
mov eax, dword [esi + 4]
add ebx, dword [eax + 0xb8]
test ebx, ebx
je 0x300187f7
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.30016560
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.30009fa0
add esp, 0xb4
jmp 0x300187f7
push 5
push str.Count
push edi
call fcn.30168401
add esp, 0xc
test eax, eax
jne 0x30017992
test ebx, ebx
je 0x30017980
mov dword [0x302718f0], eax
lea eax, [esp + 0x3c]
push ebx
push eax
push str.ActionDispatcher:_setting_count_to_0x_x._n
mov dword [0x30271548], ebx
call fcn.30009fa0
jmp 0x300187f4
push str.ActionDispatcher:_Cannot_set_count___target_value_missing._n
call fcn.30009fa0
add esp, 4
jmp 0x300187f7
push 4
push str.Skip
push edi
call fcn.30168401
add esp, 0xc
test eax, eax
jne 0x300179ec
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.30016560
mov esi, dword [esp + 0xbc]
mov ecx, dword [esi + 4]
call fcn.30016eb0
push str._nActionDispatcher:_skipping_instruction._n
call fcn.30009fa0
add esp, 0xac
jmp 0x300187f7
push 3
push 0x301f6bcc
push edi
call fcn.30168401
add esp, 0xc
test eax, eax
jne 0x30017ac1
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.30016560
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 0x30017a69
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.30026090
add esp, 0x18
mov esi, dword [esp + 0x17c]
test esi, esi
je 0x30017aaf
lea eax, [esp + 0x18]
push eax
push 0x40
push esi
push ebx
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
test esi, esi
je 0x30017a9e
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.30009fa0
add esp, 4
jmp 0x300187f7
push 4
push str.Wret
push edi
call fcn.30168401
add esp, 0xc
test eax, eax
jne 0x30017b45
mov dword [esp + 0xc], eax
mov eax, dword [esi + 4]
mov edi, dword [eax + 0xb8]
test edi, edi
je 0x30017b07
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.30026090
add esp, 0x18
mov ebx, dword [esp + 0x224]
test ebx, ebx
je 0x30017b33
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.30009fa0
add esp, 4
jmp 0x300187f7
push 4
push str.GoTo
push edi
call fcn.30168401
add esp, 0xc
test eax, eax
jne 0x30017be8
test ebx, ebx
je 0x30017bd6
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.30016560
mov eax, dword [esp + 0xc0]
add esp, 0xa8
test eax, eax
je 0x30017bb6
inc eax
push eax
push ebx
push str._nActionDispatcher:_GoTo_target_0x_p___s_._n
call fcn.30009fa0
mov esi, dword [esp + 0x20]
add esp, 0xc
mov eax, dword [esi + 4]
mov dword [eax + 0xb8], ebx
jmp 0x300187f7
push ebx
push str._nActionDispatcher:_GoTo_target_0x_p._n
call fcn.30009fa0
mov esi, dword [esp + 0x1c]
add esp, 8
mov eax, dword [esi + 4]
mov dword [eax + 0xb8], ebx
jmp 0x300187f7
push str.ActionDispatcher:_Cannot_GoTo___target_value_missing._n
call fcn.30009fa0
add esp, 4
jmp 0x300187f7
push 4
push str.Call
push edi
call fcn.30168401
add esp, 0xc
test eax, eax
jne 0x30017c9f
test ebx, ebx
je 0x30017c8d
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.30016560
mov eax, dword [esp + 0xc0]
add esp, 0xa8
test eax, eax
je 0x30017c4f
inc eax
push eax
push ebx
push str._nActionDispatcher:_Call_target_0x_p___s_._n
call fcn.30009fa0
add esp, 0xc
jmp 0x30017c5d
push ebx
push str._nActionDispatcher:_Call_target_0x_p._n
call fcn.30009fa0
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 0x300187f7
push str.ActionDispatcher:_Cannot_call___target_value_missing._n
call fcn.30009fa0
add esp, 4
jmp 0x300187f7
push 4
push str.Push
push edi
call fcn.30168401
add esp, 0xc
test eax, eax
jne 0x30017cff
test ebx, ebx
jne 0x30017ccf
cmp dword [esp + 0xc], ebx
jne 0x30017ccf
push str.ActionDispatcher:_Cannot_push___target_value_missing._n
call fcn.30009fa0
add esp, 4
jmp 0x300187f7
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.30016eb0
push ebx
push str.ActionDispatcher:_Pushed_0x_x_n
call fcn.30009fa0
add esp, 8
jmp 0x300187f7
push 3
push 0x301f6db0
push edi
call fcn.30168401
add esp, 0xc
test eax, eax
jne 0x30017d2f
mov eax, dword [esi + 4]
push str.ActionDispatcher:_Popped_the_stack
add dword [eax + 0xc4], 4
call fcn.30009fa0
add esp, 4
jmp 0x300187f7
push 3
push 0x301f6dd8
push edi
call fcn.30168401
add esp, 0xc
test eax, eax
jne 0x30017df4
cmp ebx, 0xa
jae 0x300187f7
test ebx, ebx
jne 0x30017d59
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 0x300187f7
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.30016560
mov edi, dword [esp + 0xc4]
add esp, 0xa8
push edi
cmp ebx, 1
jbe 0x30017db7
push ebx
push str._nActionDispatcher:_Return___d__to_0x_p._n
call fcn.30009fa0
add esp, 0xc
jmp 0x30017dc4
push str._nActionDispatcher:_Return_to_0x_p._n
call fcn.30009fa0
add esp, 8
mov esi, dword [esp + 0x14]
mov eax, dword [esi + 4]
mov dword [eax + 0xb8], edi
test ebx, ebx
je 0x300187f7
lea esp, [esp]
mov eax, dword [esi + 4]
add dword [eax + 0xc4], 4
sub ebx, 1
jne 0x30017de0
jmp 0x300187f7
push 6
push str.Unwind
push edi
call fcn.30168401
add esp, 0xc
test eax, eax
jne 0x30017ebb
cmp ebx, 0xa
jae 0x300187f7
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.30016560
add esp, 0xa8
test ebx, ebx
jne 0x30017e46
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 0x30017e50
mov eax, dword [esi + 4]
mov eax, dword [eax + 0xb8]
push eax
cmp ebx, 1
jbe 0x30017ea9
push ebx
push str._nActionDispatcher:_Unwind__d_frames_to_0x_p._n
call fcn.30009fa0
jmp 0x300187f4
push str._nActionDispatcher:_Unwind_to_previous_frame_at_0x_p._n
call fcn.30009fa0
add esp, 8
jmp 0x300187f7
push 6
push str.hooks:
push edi
call fcn.30168401
add esp, 0xc
test eax, eax
jne 0x30017f18
mov al, byte [edi + 6]
cmp al, 0x31
jne 0x30017ef3
push str.ActionDispatcher:_Enabling_hooks._n
call fcn.30009fa0
add esp, 4
call fcn.300293e0
mov dword [eax], 0
jmp 0x300187f7
cmp al, 0x30
jne 0x300187f7
push str.ActionDispatcher:_Disabling_hooks._n
call fcn.30009fa0
add esp, 4
call fcn.300293e0
mov dword [eax], 1
jmp 0x300187f7
push str.Stop
push edi
call fcn.30168730
add esp, 8
test eax, eax
jne 0x30017f9f
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.30016560
push str._nActionDispatcher:_stopping_trace._n
call fcn.30009fa0
mov esi, dword [esp + 0xc0]
add esp, 0xac
mov ecx, dword [esi + 4]
call fcn.30007420
push 0x2cc
push 0
push 0x302445b0
call fcn.30160f00
mov dword [0x30272208], 0
mov dword [0x30271a64], 1
mov dword [0x302721cc], 0
jmp 0x300187f4
push 6
push str.Print:
push edi
call fcn.30168401
add esp, 0xc
test eax, eax
jne 0x30018007
push 0x104
push eax
lea eax, [esp + 0x238]
push eax
call fcn.30160f00
add esp, 0xc
test ebx, ebx
je 0x30017ff4
push ecx
lea edx, [esp + 0x234]
mov ecx, ebx
call fcn.30016750
add esp, 4
test eax, eax
je 0x30017ff4
push ebx
push ebx
push str.ActionDispatcher:_Print_0x_p_____s_n
call fcn.30009fa0
jmp 0x300187f4
push ebx
push str.ActionDispatcher:_Nothing_to_print_at_0x_p_n
call fcn.30009fa0
add esp, 8
jmp 0x300187f7
push str.DumpImage
push edi
call fcn.30168730
add esp, 8
test eax, eax
jne 0x30018116
mov ecx, dword [esi + 4]
mov ecx, dword [ecx + 0xb8]
call fcn.30002350
mov ecx, dword [0x3026f410]
mov esi, eax
mov edx, dword [0x302728d0]
test ecx, ecx
je 0x30018042
mov dword [edx + 0x10], ecx
jmp 0x30018073
mov eax, dword [0x3026f414]
test eax, eax
je 0x30018050
mov dword [edx + 0x10], eax
jmp 0x30018073
mov eax, dword [0x3026f418]
test eax, eax
je 0x3001805e
mov dword [edx + 0x10], eax
jmp 0x30018073
mov eax, dword [0x3026f41c]
test eax, eax
je 0x3001806c
mov dword [edx + 0x10], eax
jmp 0x30018073
mov dword [edx + 0x10], 8
mov ecx, 0x3026f524
lea edi, [ecx + 1]
jmp 0x30018080
mov al, byte [ecx]
inc ecx
test al, al
jne 0x30018080
sub ecx, edi
je 0x30018094
mov dword [edx + 0x24], 0x3026f524
jmp 0x300180f2
mov ecx, 0x3026f628
lea edi, [ecx + 1]
lea esp, [esp]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x300180a0
sub ecx, edi
je 0x300180b4
mov dword [edx + 0x24], 0x3026f628
jmp 0x300180f2
mov ecx, 0x3026f72c
lea edi, [ecx + 1]
lea esp, [esp]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x300180c0
sub ecx, edi
je 0x300180d4
mov dword [edx + 0x24], 0x3026f72c
jmp 0x300180f2
mov ecx, 0x3026f830
lea edi, [ecx + 1]
lea esp, [esp]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x300180e0
sub ecx, edi
je 0x300180f2
mov dword [edx + 0x24], 0x3026f830
mov ecx, esi
call fcn.30004b50
test eax, eax
mov eax, str.ActionDispatcher:_Dumped_breaking_module_at_0x_p._n
jne 0x30018107
mov eax, str.ActionDispatcher:_Failed_to_dump_breaking_module_at_0x_p._n
push esi
push eax
call fcn.30009fa0
add esp, 8
jmp 0x300187f7
push 9
push str.DumpSize:
push edi
call fcn.30168401
add esp, 0xc
test eax, eax
jne 0x30018159
test ebx, ebx
je 0x30018147
push ebx
push str.ActionDispatcher:_Dump_size_set_to_0x_x._n
mov dword [0x30271d80], ebx
call fcn.30009fa0
add esp, 8
jmp 0x300187f7
push str.ActionDispatcher:_Failed_to_set_dump_size._n
call fcn.30009fa0
add esp, 4
jmp 0x300187f7
push 8
push str.SetDump:
push edi
call fcn.30168401
add esp, 0xc
test eax, eax
jne 0x300181ba
test ebx, ebx
je 0x300181a8
mov eax, dword [esp + 0x2c]
mov dword [0x30271a98], ebx
test eax, eax
jne 0x30018192
push ebx
push str.SetDump:_Dump_address_set_to_0x_p._n
call fcn.30009fa0
add esp, 8
jmp 0x300187f7
push eax
push ebx
push str.SetDump:_Dump_address_set_to_0x_p__size_0x_x_n
mov dword [0x30271d80], eax
call fcn.30009fa0
jmp 0x300187f4
push str.SetDump:_Failed_to_set_dump_address._n
call fcn.30009fa0
add esp, 4
jmp 0x300187f7
push str.Dump
push edi
call fcn.30168730
add esp, 8
test eax, eax
je 0x300185f7
push 5
push str.Dump:
push edi
call fcn.30168401
add esp, 0xc
test eax, eax
je 0x300185f7
push str.Step2OEP
push edi
call fcn.30168730
add esp, 8
test eax, eax
jne 0x30018216
mov ecx, dword [esi + 4]
mov edx, 0x30016f20
call fcn.300073f0
mov dword [0x30271548], 0
jmp 0x300187f7
push str.Scan
push edi
call fcn.30168730
add esp, 8
test eax, eax
jne 0x30018263
mov ecx, dword [esp + 0x20]
call fcn.30002350
mov esi, eax
test ebx, ebx
je 0x30018240
mov ecx, ebx
call fcn.30002350
mov esi, eax
push esi
push str.ActionDispatcher:_Scanning_region_at_0x_p._n
call fcn.30009fa0
add esp, 8
mov ecx, esi
call fcn.30002520
mov edx, eax
mov ecx, esi
call fcn.3001e250
jmp 0x300187f7
push 6
push str.SetBp0
push edi
call fcn.30168401
add esp, 0xc
test eax, eax
jne 0x300182c6
mov ecx, dword [esp + 0x20]
call fcn.30002350
test ebx, ebx
je 0x300182b4
cmp ebx, eax
jae 0x3001828a
add ebx, eax
push ecx
mov ecx, dword [esi + 4]
xor edx, edx
push 0x3001a020
push 0
push 0
push ebx
push 0
call fcn.30007450
push ebx
push str.SetBp0:_Breakpoint_0_set_to_0x_p._n
call fcn.30009fa0
add esp, 0x20
jmp 0x300187f7
push str.SetBp0:_Failed_to_obtain_breakpoint_address._n
call fcn.30009fa0
add esp, 4
jmp 0x300187f7
push 6
push str.SetBp1
push edi
call fcn.30168401
add esp, 0xc
test eax, eax
jne 0x3001832c
mov ecx, dword [esp + 0x20]
call fcn.30002350
test ebx, ebx
je 0x3001831a
cmp ebx, eax
jae 0x300182ed
add ebx, eax
push ecx
mov ecx, dword [esi + 4]
mov edx, 1
push 0x3001a020
push 0
push 0
push ebx
push 0
call fcn.30007450
push ebx
push str.SetBp1:_Breakpoint_1_set_to_0x_p._n
call fcn.30009fa0
add esp, 0x20
jmp 0x300187f7
push str.SetBp1:_Failed_to_obtain_breakpoint_address._n
call fcn.30009fa0
add esp, 4
jmp 0x300187f7
push 6
push str.SetBp2
push edi
call fcn.30168401
add esp, 0xc
test eax, eax
jne 0x30018392
mov ecx, dword [esp + 0x20]
call fcn.30002350
test ebx, ebx
je 0x30018380
cmp ebx, eax
jae 0x30018353
add ebx, eax
push ecx
mov ecx, dword [esi + 4]
mov edx, 2
push 0x3001a020
push 0
push 0
push ebx
push 0
call fcn.30007450
push ebx
push str.SetBp2:_Breakpoint_2_set_to_0x_p._n
call fcn.30009fa0
add esp, 0x20
jmp 0x300187f7
push str.SetBp2:_Failed_to_obtain_breakpoint_address._n
call fcn.30009fa0
add esp, 4
jmp 0x300187f7
push 6
push str.SetBp3
push edi
call fcn.30168401
add esp, 0xc
test eax, eax
jne 0x300183f8
mov ecx, dword [esp + 0x20]
call fcn.30002350
test ebx, ebx
je 0x300183e6
cmp ebx, eax
jae 0x300183b9
add ebx, eax
push ecx
mov ecx, dword [esi + 4]
mov edx, 3
push 0x3001a020
push 0
push 0
push ebx
push 0
call fcn.30007450
push ebx
push str.SetBp3:_Breakpoint_3_set_to_0x_p._n
call fcn.30009fa0
add esp, 0x20
jmp 0x300187f7
push str.SetBp3:_Failed_to_obtain_breakpoint_address._n
call fcn.30009fa0
add esp, 4
jmp 0x300187f7
push str.DumpStack
push edi
call fcn.30168730
add esp, 8
test eax, eax
jne 0x300184ef
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.3004b210
mov eax, dword fs:[4]
sub eax, esi
and eax, 0xfffffffc
cmp eax, 0x190
jbe 0x300187f7
mov edx, 0x64
mov ecx, esi
call fcn.3004ab00
test al, al
je 0x300187f7
mov ebx, 0x64
jmp 0x30018460
mov ecx, dword [esi]
test ecx, ecx
je 0x300184de
lea edx, [esp + 0x2c]
call fcn.3004b210
lea ecx, [edi + 4]
cmp esi, ecx
jne 0x300184a8
mov edi, dword [edi]
test eax, eax
je 0x30018493
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.30009fa0
add esp, 0x14
jmp 0x300184de
mov ecx, dword [esi]
call fcn.300028c0
test eax, eax
je 0x300184de
push dword [esi]
push esi
push str.0x_p:_t_0x_p_t___n
jmp 0x300184d6
test eax, eax
je 0x300184c3
push dword [esp + 0x2c]
push eax
push dword [esi]
push esi
push str.0x_p:_t_0x_p____s::0x_x_n
call fcn.30009fa0
add esp, 0x14
jmp 0x300184de
mov ecx, dword [esi]
call fcn.300028c0
test eax, eax
je 0x300184de
push dword [esi]
push esi
push str.0x_p:_t_0x_p_n
call fcn.30009fa0
add esp, 0xc
add esi, 4
sub ebx, 1
jne 0x30018460
jmp 0x300187f7
push 6
push str.String
push edi
call fcn.30168401
add esp, 0xc
test eax, eax
jne 0x3001853e
test ebx, ebx
je 0x3001852c
push ebx
push str.String_captured_at_0x_p:__
call fcn.30009fa0
mov ecx, ebx
call fcn.30016930
push ebx
push 0x301f7434
call fcn.30009fa0
add esp, 0x10
jmp 0x300187f7
push str.String:_Failed_to_obtain_string_address._n
call fcn.30009fa0
add esp, 4
jmp 0x300187f7
push 5
push 0x301f7464
push edi
call fcn.30168401
add esp, 0xc
test eax, eax
jne 0x300185a1
test ebx, ebx
je 0x3001858f
push ebx
push str.ActionDispatcher:_Sleeping_for__d_milliseconds._n
call fcn.30009fa0
add esp, 8
mov eax, ebx
cdq
push 0xffffffffffffffff
push 0xffffd8f0
push edx
push eax
call fcn.3015ec80
mov dword [esp + 0x20], eax
lea eax, [esp + 0x20]
push eax
push 0
mov dword [esp + 0x2c], edx
call dword [0x302718ec]
jmp 0x300187f7
push str.ActionDispatcher:_Sleep_duration_not_supploed._n
call fcn.30009fa0
add esp, 4
jmp 0x300187f7
push str.Exit
push edi
call fcn.30168730
add esp, 8
test eax, eax
jne 0x300185ce
push str.ActionDispatcher:_Terminating_process._n
call fcn.30009fa0
add esp, 4
push 1
push 0
call fcn.30038520
jmp 0x300187f7
push str.custom
push edi
call fcn.30168730
add esp, 8
test eax, eax
je 0x300187f7
push edi
push str.ActionDispatcher:_Unrecognised_action:___s__n
call fcn.30009fa0
add esp, 8
jmp 0x300187f7
mov eax, dword [0x3026f410]
mov edx, dword [0x302728d0]
test eax, eax
jne 0x30018621
mov eax, dword [0x3026f414]
test eax, eax
jne 0x30018621
mov eax, dword [0x3026f418]
test eax, eax
jne 0x30018621
mov eax, dword [0x3026f41c]
test eax, eax
je 0x30018624
mov dword [edx + 0x10], eax
mov ecx, 0x3026f524
lea edi, [ecx + 1]
lea esp, [esp]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x30018630
sub ecx, edi
je 0x30018644
mov dword [edx + 0x24], 0x3026f524
jmp 0x300186a2
mov ecx, 0x3026f628
lea edi, [ecx + 1]
lea esp, [esp]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x30018650
sub ecx, edi
je 0x30018664
mov dword [edx + 0x24], 0x3026f628
jmp 0x300186a2
mov ecx, 0x3026f72c
lea edi, [ecx + 1]
lea esp, [esp]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x30018670
sub ecx, edi
je 0x30018684
mov dword [edx + 0x24], 0x3026f72c
jmp 0x300186a2
mov ecx, 0x3026f830
lea edi, [ecx + 1]
lea esp, [esp]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x30018690
sub ecx, edi
je 0x300186a9
mov dword [edx + 0x24], 0x3026f830
mov dword [edx + 0x10], 0x100
mov ecx, 0x302715e0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x300186b1
sub ecx, edx
je 0x300186ef
mov ecx, dword [esi + 4]
mov edx, 0x302715e0
call fcn.30016a60
mov dword [0x30271d80], eax
test eax, eax
jne 0x300186f4
mov ecx, dword [esp + 0x18]
test ecx, ecx
je 0x300186f4
push eax
push eax
lea eax, [ecx + 1]
push eax
call fcn.3016a292
add esp, 0xc
mov dword [0x30271d80], eax
jmp 0x300186f4
mov eax, dword [0x30271d80]
test ebx, ebx
jne 0x30018704
mov ecx, dword [0x30271a98]
test ecx, ecx
je 0x30018704
mov ebx, ecx
mov ecx, dword [esp + 0x2c]
test ecx, ecx
je 0x30018725
push ecx
push str.ActionDispatcher:_Dump_size_set_to_0x_x_n
mov dword [0x30271d80], ecx
call fcn.30009fa0
mov eax, dword [0x30271d80]
add esp, 8
test ebx, ebx
je 0x300187d4
test eax, eax
je 0x300187a1
cmp eax, 0x1000000
jae 0x300187a1
mov ecx, dword [0x3027289c]
test ecx, ecx
je 0x30018749
dec ecx
mov dword [0x3027289c], ecx
mov edx, eax
mov ecx, ebx
call fcn.30004ae0
push dword [0x30271d80]
push ebx
test eax, eax
je 0x3001877f
push str.ActionDispatcher:_Dumped_region_at_0x_p_size_0x_x._n
call fcn.30009fa0
add esp, 0xc
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x330]
xor ecx, esp
call fcn.3015dd6d
mov esp, ebp
pop ebp
ret
push str.ActionDispatcher:_Failed_to_dump_region_at_0x_p_size_0x_x._n
call fcn.30009fa0
add esp, 0xc
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x330]
xor ecx, esp
call fcn.3015dd6d
mov esp, ebp
pop ebp
ret
mov ecx, ebx
call fcn.30004b50
test eax, eax
je 0x300187cf
push ebx
push str.ActionDispatcher:_Dumped_region_at_0x_p._n
call fcn.30009fa0
add esp, 8
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x330]
xor ecx, esp
call fcn.3015dd6d
mov esp, ebp
pop ebp
ret
mov eax, dword [0x30271d80]
push eax
push ebx
push str.ActionDispatcher:_Failed_to_dump_region_at_0x_p__size_0x_x._n
call fcn.30009fa0
mov dword [0x30271a98], 0
mov dword [0x30271d80], 0
add esp, 0xc
mov ecx, dword [esp + 0x33c]
inc dword [0x30271d78]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.3015dd6d
mov esp, ebp
pop ebp
ret