Function at 0x30017be0
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 [0x30215e88]
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 [0x3026d8ec], 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.3015be70
add esp, 8
mov dword [esp + 0x18], eax
test eax, eax
je 0x30017e20
lea ebx, [eax + 1]
push 0x3a
push ebx
call fcn.3015be70
add esp, 8
mov dword [esp + 0x1c], eax
test eax, eax
je 0x30017dbe
cmp byte [eax + 1], 0x3a
jne 0x30017dbe
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 0x30017d01
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 0x30017da9
call fcn.30165db2
push ebx
mov dword [eax], ebx
lea eax, [esp + 0x38]
push eax
push dword [esp + 0x18]
call fcn.30166144
add esp, 0xc
mov ebx, eax
call fcn.30165db2
cmp dword [eax], 0
jne 0x30017cea
mov eax, dword [esp + 0x10]
cmp dword [esp + 0x34], eax
je 0x30017cea
mov dword [esp + 0xc], 1
jmp 0x30017d23
mov ebx, dword [esp + 0x18]
inc ebx
push ebx
push str.ActionDispatcher:_Failed_to_get_target:__s._n
call fcn.3000a570
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.30017160
mov ebx, eax
mov eax, dword [esp + 0x1c]
mov byte [eax], 0x3a
mov eax, dword [esp + 0x10]
test ebx, ebx
je 0x30017e20
mov ecx, dword [esi + 4]
mov edx, eax
mov dword [esp + 0xc], 1
call fcn.30017160
mov dword [esp + 0x2c], eax
test eax, eax
jne 0x30017e20
call fcn.30165db2
push 0
mov dword [eax], 0
lea eax, [esp + 0x34]
push eax
push dword [esp + 0x18]
call fcn.30166144
add esp, 0xc
mov dword [esp + 0x2c], eax
call fcn.30165db2
cmp dword [eax], 0
mov eax, dword [esp + 0x10]
jne 0x30017d83
cmp dword [esp + 0x30], eax
jne 0x30017e20
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov dword [esp + 0x2c], eax
test eax, eax
jne 0x30017e20
push dword [esp + 0x10]
push str.ActionDispatcher:_Failed_to_get_target_arg:__s._n
call fcn.3000a570
add esp, 8
jmp 0x30017e20
mov eax, dword [esp + 0x10]
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], eax
jmp 0x30017d23
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov ebx, eax
test ebx, ebx
jne 0x30017e18
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + 4]
lea edx, [edx + 1]
call fcn.30017160
mov ebx, eax
test ebx, ebx
jne 0x30017e18
call fcn.30165db2
push ebx
mov dword [eax], ebx
lea eax, [esp + 0x20]
push eax
mov eax, dword [esp + 0x20]
inc eax
push eax
call fcn.30166144
add esp, 0xc
mov ebx, eax
call fcn.30165db2
cmp dword [eax], 0
jne 0x30017e54
mov ecx, dword [esp + 0x18]
lea eax, [ecx + 1]
mov dword [esp + 0x10], eax
cmp dword [esp + 0x1c], eax
je 0x30017e5d
mov dword [esp + 0xc], 1
push 6
push str.SetEax
push edi
call fcn.301642c1
add esp, 0xc
test eax, eax
jne 0x30017ed3
test ebx, ebx
jne 0x30017eaf
cmp dword [esp + 0xc], ebx
jne 0x30017eaf
push str.ActionDispatcher:_Cannot_set_EAX___target_value_missing._n
call fcn.3000a570
add esp, 4
jmp 0x30019347
mov eax, dword [esp + 0x18]
inc eax
mov dword [esp + 0x10], eax
call fcn.30165db2
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.301660b2
add esp, 0xc
mov ebx, eax
call fcn.30165db2
cmp dword [eax], 0
jne 0x30017e95
mov eax, dword [esp + 0x10]
cmp dword [esp + 0x1c], eax
jne 0x30017e18
mov ecx, dword [esp + 0x18]
lea eax, [ecx + 1]
push eax
push str.ActionDispatcher:_Failed_to_get_target:__s._n
call fcn.3000a570
add esp, 8
jmp 0x30017e20
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.3000a570
add esp, 8
jmp 0x30019347
push 6
push str.SetEbx
push edi
call fcn.301642c1
add esp, 0xc
test eax, eax
jne 0x30017f27
test ebx, ebx
jne 0x30017f03
cmp dword [esp + 0xc], ebx
jne 0x30017f03
push str.ActionDispatcher:_Cannot_set_EBX___target_value_missing._n
call fcn.3000a570
add esp, 4
jmp 0x30019347
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.3000a570
add esp, 8
jmp 0x30019347
push 6
push str.SetEcx
push edi
call fcn.301642c1
add esp, 0xc
test eax, eax
jne 0x30017f7b
test ebx, ebx
jne 0x30017f57
cmp dword [esp + 0xc], ebx
jne 0x30017f57
push str.ActionDispatcher:_Cannot_set_ECX___target_value_missing._n
call fcn.3000a570
add esp, 4
jmp 0x30019347
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.3000a570
add esp, 8
jmp 0x30019347
push 6
push str.SetEdx
push edi
call fcn.301642c1
add esp, 0xc
test eax, eax
jne 0x30017fcf
test ebx, ebx
jne 0x30017fab
cmp dword [esp + 0xc], ebx
jne 0x30017fab
push str.ActionDispatcher:_Cannot_set_EDX___target_value_missing._n
call fcn.3000a570
add esp, 4
jmp 0x30019347
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.3000a570
add esp, 8
jmp 0x30019347
push 6
push str.SetEsi
push edi
call fcn.301642c1
add esp, 0xc
test eax, eax
jne 0x30018023
test ebx, ebx
jne 0x30017fff
cmp dword [esp + 0xc], ebx
jne 0x30017fff
push str.ActionDispatcher:_Cannot_set_ESI___target_value_missing._n
call fcn.3000a570
add esp, 4
jmp 0x30019347
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.3000a570
add esp, 8
jmp 0x30019347
push 6
push str.SetEdi
push edi
call fcn.301642c1
add esp, 0xc
test eax, eax
jne 0x30018077
test ebx, ebx
jne 0x30018053
cmp dword [esp + 0xc], ebx
jne 0x30018053
push str.ActionDispatcher:_Cannot_set_EDI___target_value_missing._n
call fcn.3000a570
add esp, 4
jmp 0x30019347
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.3000a570
add esp, 8
jmp 0x30019347
push 6
push str.SetPtr
push edi
call fcn.301642c1
add esp, 0xc
test eax, eax
jne 0x300180bf
test ebx, ebx
jne 0x300180a8
cmp dword [esp + 0xc], ebx
jne 0x300180a8
push ebx
push str.ActionDispatcher:_Cannot_set_0x_p_pointer_value___target_missing._n
call fcn.3000a570
add esp, 8
jmp 0x30019347
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.3000a570
jmp 0x30019344
push 6
push str.SetSrc
push edi
call fcn.301642c1
add esp, 0xc
test eax, eax
jne 0x30018125
test ebx, ebx
jne 0x300180f1
cmp dword [esp + 0xc], ebx
jne 0x300180f1
push 0
push str.ActionDispatcher:_Cannot_set_operand_value___target_missing._n
call fcn.3000a570
add esp, 8
jmp 0x30019347
lea eax, [esp + 0x70]
push 0x2c
push eax
call fcn.3015be70
mov edi, eax
add esp, 8
test edi, edi
je 0x30019347
mov byte [edi], 0
lea edx, [esp + 0x70]
mov ecx, dword [esi + 4]
push ebx
call fcn.30017950
add esp, 4
mov byte [edi], 0x2c
jmp 0x30019347
push 6
push str.SetDst
push edi
call fcn.301642c1
add esp, 0xc
test eax, eax
jne 0x3001816e
test ebx, ebx
jne 0x30018143
cmp dword [esp + 0xc], ebx
je 0x300180dd
lea eax, [esp + 0x70]
push 0x2c
push eax
call fcn.3015be70
add esp, 8
test eax, eax
je 0x30019347
mov ecx, dword [esi + 4]
lea edx, [eax + 2]
push ebx
call fcn.30017950
add esp, 4
jmp 0x30019347
push str.ClearZeroFlag
push edi
call fcn.3016475e
add esp, 8
test eax, eax
jne 0x300181a0
mov eax, dword [esi + 4]
test eax, eax
je 0x3001818e
and dword [eax + 0xc0], 0xffffffbf
push str.ActionDispatcher:_clearing_zero_flag._n
call fcn.3000a570
add esp, 4
jmp 0x30019347
push str.SetZeroFlag
push edi
call fcn.3016475e
add esp, 8
test eax, eax
jne 0x300181d2
mov eax, dword [esi + 4]
test eax, eax
je 0x300181c0
or dword [eax + 0xc0], 0x40
push str.ActionDispatcher:_setting_zero_flag._n
call fcn.3000a570
add esp, 4
jmp 0x30019347
push str.FlipZeroFlag
push edi
call fcn.3016475e
add esp, 8
test eax, eax
jne 0x30018204
mov eax, dword [esi + 4]
test eax, eax
je 0x300181f2
xor dword [eax + 0xc0], 0x40
push str.ActionDispatcher:_flipping_zero_flag._n
call fcn.3000a570
add esp, 4
jmp 0x30019347
push str.ClearSignFlag
push edi
call fcn.3016475e
add esp, 8
test eax, eax
jne 0x30018239
mov eax, dword [esi + 4]
test eax, eax
je 0x30018227
and dword [eax + 0xc0], 0xffffff7f
push str.ActionDispatcher:_clearing_Sign_flag._n
call fcn.3000a570
add esp, 4
jmp 0x30019347
push str.SetSignFlag
push edi
call fcn.3016475e
add esp, 8
test eax, eax
jne 0x3001826e
mov eax, dword [esi + 4]
test eax, eax
je 0x3001825c
or dword [eax + 0xc0], 0x80
push str.ActionDispatcher:_setting_Sign_flag._n
call fcn.3000a570
add esp, 4
jmp 0x30019347
push str.FlipSignFlag
push edi
call fcn.3016475e
add esp, 8
test eax, eax
jne 0x300182a3
mov eax, dword [esi + 4]
test eax, eax
je 0x30018291
xor dword [eax + 0xc0], 0x80
push str.ActionDispatcher:_flipping_Sign_flag._n
call fcn.3000a570
add esp, 4
jmp 0x30019347
push str.ClearCarryFlag
push edi
call fcn.3016475e
add esp, 8
test eax, eax
jne 0x300182d5
mov eax, dword [esi + 4]
test eax, eax
je 0x300182c3
and dword [eax + 0xc0], 0xfffffffe
push str.ActionDispatcher:_clearing_Carry_flag._n
call fcn.3000a570
add esp, 4
jmp 0x30019347
push str.SetCarryFlag
push edi
call fcn.3016475e
add esp, 8
test eax, eax
jne 0x30018307
mov eax, dword [esi + 4]
test eax, eax
je 0x300182f5
or dword [eax + 0xc0], 1
push str.ActionDispatcher:_setting_Carry_flag._n
call fcn.3000a570
add esp, 4
jmp 0x30019347
push str.FlipCarryFlag
push edi
call fcn.3016475e
add esp, 8
test eax, eax
jne 0x30018339
mov eax, dword [esi + 4]
test eax, eax
je 0x30018327
xor dword [eax + 0xc0], 1
push str.ActionDispatcher:_flipping_Carry_flag._n
call fcn.3000a570
add esp, 4
jmp 0x30019347
push 3
push 0x301f2b0c
push edi
call fcn.301642c1
add esp, 0xc
test eax, eax
jne 0x30018498
test ebx, ebx
jne 0x30018430
push 1
lea eax, [esp + 0x40]
push 0x301f2b10
push eax
call fcn.301642c1
add esp, 0xc
test eax, eax
jne 0x3001841e
mov eax, dword [esp + 0xd4]
cmp eax, 4
jbe 0x30018406
cmp dword [esp + 0x6c], ebx
je 0x300183f3
push 5
lea eax, [esp + 0x74]
push 0x301f2b14
push eax
call fcn.30164910
add esp, 0xc
test eax, eax
jne 0x300183ec
push 8
lea eax, [esp + 0x74]
push str.DWORD__E
push eax
call fcn.30164910
add esp, 0xc
test eax, eax
je 0x300183ec
push 9
lea eax, [esp + 0x74]
push str.DWORD__0x
push eax
call fcn.30164910
mov edx, dword [esp + 0x2c]
add esp, 0xc
test eax, eax
mov eax, dword [esp + 0xd4]
jne 0x300183e6
mov eax, dword [eax + edx - 4]
mov ebx, dword [eax]
jmp 0x30018445
mov ebx, dword [eax + edx - 4]
jmp 0x30018445
mov eax, dword [esp + 0xd4]
cmp eax, 4
jbe 0x30018406
mov edx, dword [esp + 0x20]
mov ebx, dword [eax + edx - 4]
add ebx, eax
add ebx, edx
jmp 0x30018445
cmp eax, 2
jne 0x30019347
mov edx, dword [esp + 0x20]
movsx eax, byte [edx + 1]
lea ebx, [edx + 2]
add ebx, eax
jmp 0x30018445
push str.ActionDispatcher:_No_target_specified_for_jmp_action._n
call fcn.3000a570
add esp, 4
jmp 0x30019347
mov edx, dword [esp + 0x20]
cmp ebx, 0x10000
jae 0x30018445
mov eax, dword [esi + 4]
add ebx, dword [eax + 0xb8]
test ebx, ebx
je 0x30019347
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.30016b30
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.3000a570
add esp, 0xb4
jmp 0x30019347
push 5
push str.Count
push edi
call fcn.301642c1
add esp, 0xc
test eax, eax
jne 0x300184e2
test ebx, ebx
je 0x300184d0
mov dword [0x3026db4c], eax
lea eax, [esp + 0x3c]
push ebx
push eax
push str.ActionDispatcher:_setting_count_to_0x_x._n
mov dword [0x3026d8f8], ebx
call fcn.3000a570
jmp 0x30019344
push str.ActionDispatcher:_Cannot_set_count___target_value_missing._n
call fcn.3000a570
add esp, 4
jmp 0x30019347
push 4
push str.Skip
push edi
call fcn.301642c1
add esp, 0xc
test eax, eax
jne 0x3001853c
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.30016b30
mov esi, dword [esp + 0xbc]
mov ecx, dword [esi + 4]
call fcn.300179a0
push str._nActionDispatcher:_skipping_instruction._n
call fcn.3000a570
add esp, 0xac
jmp 0x30019347
push 3
push 0x301f2c3c
push edi
call fcn.301642c1
add esp, 0xc
test eax, eax
jne 0x30018611
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.30016b30
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 0x300185b9
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.30026dc0
add esp, 0x18
mov esi, dword [esp + 0x17c]
test esi, esi
je 0x300185ff
lea eax, [esp + 0x18]
push eax
push 0x40
push esi
push ebx
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
test esi, esi
je 0x300185ee
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.3000a570
add esp, 4
jmp 0x30019347
push 4
push str.Wret
push edi
call fcn.301642c1
add esp, 0xc
test eax, eax
jne 0x30018695
mov dword [esp + 0xc], eax
mov eax, dword [esi + 4]
mov edi, dword [eax + 0xb8]
test edi, edi
je 0x30018657
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.30026dc0
add esp, 0x18
mov ebx, dword [esp + 0x224]
test ebx, ebx
je 0x30018683
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.3000a570
add esp, 4
jmp 0x30019347
push 4
push str.GoTo
push edi
call fcn.301642c1
add esp, 0xc
test eax, eax
jne 0x30018738
test ebx, ebx
je 0x30018726
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.30016b30
mov eax, dword [esp + 0xc0]
add esp, 0xa8
test eax, eax
je 0x30018706
inc eax
push eax
push ebx
push str._nActionDispatcher:_GoTo_target_0x_p___s_._n
call fcn.3000a570
mov esi, dword [esp + 0x20]
add esp, 0xc
mov eax, dword [esi + 4]
mov dword [eax + 0xb8], ebx
jmp 0x30019347
push ebx
push str._nActionDispatcher:_GoTo_target_0x_p._n
call fcn.3000a570
mov esi, dword [esp + 0x1c]
add esp, 8
mov eax, dword [esi + 4]
mov dword [eax + 0xb8], ebx
jmp 0x30019347
push str.ActionDispatcher:_Cannot_GoTo___target_value_missing._n
call fcn.3000a570
add esp, 4
jmp 0x30019347
push 4
push str.Call
push edi
call fcn.301642c1
add esp, 0xc
test eax, eax
jne 0x300187ef
test ebx, ebx
je 0x300187dd
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.30016b30
mov eax, dword [esp + 0xc0]
add esp, 0xa8
test eax, eax
je 0x3001879f
inc eax
push eax
push ebx
push str._nActionDispatcher:_Call_target_0x_p___s_._n
call fcn.3000a570
add esp, 0xc
jmp 0x300187ad
push ebx
push str._nActionDispatcher:_Call_target_0x_p._n
call fcn.3000a570
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 0x30019347
push str.ActionDispatcher:_Cannot_call___target_value_missing._n
call fcn.3000a570
add esp, 4
jmp 0x30019347
push 4
push str.Push
push edi
call fcn.301642c1
add esp, 0xc
test eax, eax
jne 0x3001884f
test ebx, ebx
jne 0x3001881f
cmp dword [esp + 0xc], ebx
jne 0x3001881f
push str.ActionDispatcher:_Cannot_push___target_value_missing._n
call fcn.3000a570
add esp, 4
jmp 0x30019347
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.300179a0
push ebx
push str.ActionDispatcher:_Pushed_0x_x_n
call fcn.3000a570
add esp, 8
jmp 0x30019347
push 3
push 0x301f2e20
push edi
call fcn.301642c1
add esp, 0xc
test eax, eax
jne 0x3001887f
mov eax, dword [esi + 4]
push str.ActionDispatcher:_Popped_the_stack
add dword [eax + 0xc4], 4
call fcn.3000a570
add esp, 4
jmp 0x30019347
push 3
push 0x301f2e48
push edi
call fcn.301642c1
add esp, 0xc
test eax, eax
jne 0x30018944
cmp ebx, 0xa
jae 0x30019347
test ebx, ebx
jne 0x300188a9
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 0x30019347
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.30016b30
mov edi, dword [esp + 0xc4]
add esp, 0xa8
push edi
cmp ebx, 1
jbe 0x30018907
push ebx
push str._nActionDispatcher:_Return___d__to_0x_p._n
call fcn.3000a570
add esp, 0xc
jmp 0x30018914
push str._nActionDispatcher:_Return_to_0x_p._n
call fcn.3000a570
add esp, 8
mov esi, dword [esp + 0x14]
mov eax, dword [esi + 4]
mov dword [eax + 0xb8], edi
test ebx, ebx
je 0x30019347
lea esp, [esp]
mov eax, dword [esi + 4]
add dword [eax + 0xc4], 4
sub ebx, 1
jne 0x30018930
jmp 0x30019347
push 6
push str.Unwind
push edi
call fcn.301642c1
add esp, 0xc
test eax, eax
jne 0x30018a0b
cmp ebx, 0xa
jae 0x30019347
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.30016b30
add esp, 0xa8
test ebx, ebx
jne 0x30018996
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 0x300189a0
mov eax, dword [esi + 4]
mov eax, dword [eax + 0xb8]
push eax
cmp ebx, 1
jbe 0x300189f9
push ebx
push str._nActionDispatcher:_Unwind__d_frames_to_0x_p._n
call fcn.3000a570
jmp 0x30019344
push str._nActionDispatcher:_Unwind_to_previous_frame_at_0x_p._n
call fcn.3000a570
add esp, 8
jmp 0x30019347
push 6
push str.hooks:
push edi
call fcn.301642c1
add esp, 0xc
test eax, eax
jne 0x30018a68
mov al, byte [edi + 6]
cmp al, 0x31
jne 0x30018a43
push str.ActionDispatcher:_Enabling_hooks._n
call fcn.3000a570
add esp, 4
call fcn.3002a140
mov dword [eax], 0
jmp 0x30019347
cmp al, 0x30
jne 0x30019347
push str.ActionDispatcher:_Disabling_hooks._n
call fcn.3000a570
add esp, 4
call fcn.3002a140
mov dword [eax], 1
jmp 0x30019347
push str.Stop
push edi
call fcn.3016475e
add esp, 8
test eax, eax
jne 0x30018aef
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.30016b30
push str._nActionDispatcher:_stopping_trace._n
call fcn.3000a570
mov esi, dword [esp + 0xc0]
add esp, 0xac
mov ecx, dword [esi + 4]
call fcn.30007ac0
push 0x2cc
push 0
push 0x3023f9e0
call fcn.3015cdc0
mov dword [0x3026e004], 0
mov dword [0x3026d8e0], 1
mov dword [0x3026dff8], 0
jmp 0x30019344
push 6
push str.Print:
push edi
call fcn.301642c1
add esp, 0xc
test eax, eax
jne 0x30018b57
push 0x104
push eax
lea eax, [esp + 0x238]
push eax
call fcn.3015cdc0
add esp, 0xc
test ebx, ebx
je 0x30018b44
push ecx
lea edx, [esp + 0x234]
mov ecx, ebx
call fcn.30016d20
add esp, 4
test eax, eax
je 0x30018b44
push ebx
push ebx
push str.ActionDispatcher:_Print_0x_p_____s_n
call fcn.3000a570
jmp 0x30019344
push ebx
push str.ActionDispatcher:_Nothing_to_print_at_0x_p_n
call fcn.3000a570
add esp, 8
jmp 0x30019347
push str.DumpImage
push edi
call fcn.3016475e
add esp, 8
test eax, eax
jne 0x30018c66
mov ecx, dword [esi + 4]
mov ecx, dword [ecx + 0xb8]
call fcn.30002560
mov ecx, dword [0x3026b468]
mov esi, eax
mov edx, dword [0x3026ed74]
test ecx, ecx
je 0x30018b92
mov dword [edx + 0x10], ecx
jmp 0x30018bc3
mov eax, dword [0x3026b46c]
test eax, eax
je 0x30018ba0
mov dword [edx + 0x10], eax
jmp 0x30018bc3
mov eax, dword [0x3026b470]
test eax, eax
je 0x30018bae
mov dword [edx + 0x10], eax
jmp 0x30018bc3
mov eax, dword [0x3026b474]
test eax, eax
je 0x30018bbc
mov dword [edx + 0x10], eax
jmp 0x30018bc3
mov dword [edx + 0x10], 8
mov ecx, 0x3026b58c
lea edi, [ecx + 1]
jmp 0x30018bd0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x30018bd0
sub ecx, edi
je 0x30018be4
mov dword [edx + 0x24], 0x3026b58c
jmp 0x30018c42
mov ecx, 0x3026b690
lea edi, [ecx + 1]
lea esp, [esp]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x30018bf0
sub ecx, edi
je 0x30018c04
mov dword [edx + 0x24], 0x3026b690
jmp 0x30018c42
mov ecx, 0x3026b794
lea edi, [ecx + 1]
lea esp, [esp]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x30018c10
sub ecx, edi
je 0x30018c24
mov dword [edx + 0x24], 0x3026b794
jmp 0x30018c42
mov ecx, 0x3026b898
lea edi, [ecx + 1]
lea esp, [esp]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x30018c30
sub ecx, edi
je 0x30018c42
mov dword [edx + 0x24], 0x3026b898
mov ecx, esi
call fcn.300051e0
test eax, eax
mov eax, str.ActionDispatcher:_Dumped_breaking_module_at_0x_p._n
jne 0x30018c57
mov eax, str.ActionDispatcher:_Failed_to_dump_breaking_module_at_0x_p._n
push esi
push eax
call fcn.3000a570
add esp, 8
jmp 0x30019347
push 9
push str.DumpSize:
push edi
call fcn.301642c1
add esp, 0xc
test eax, eax
jne 0x30018ca9
test ebx, ebx
je 0x30018c97
push ebx
push str.ActionDispatcher:_Dump_size_set_to_0x_x._n
mov dword [0x3026dd90], ebx
call fcn.3000a570
add esp, 8
jmp 0x30019347
push str.ActionDispatcher:_Failed_to_set_dump_size._n
call fcn.3000a570
add esp, 4
jmp 0x30019347
push 8
push str.SetDump:
push edi
call fcn.301642c1
add esp, 0xc
test eax, eax
jne 0x30018d0a
test ebx, ebx
je 0x30018cf8
mov eax, dword [esp + 0x2c]
mov dword [0x3026dc70], ebx
test eax, eax
jne 0x30018ce2
push ebx
push str.SetDump:_Dump_address_set_to_0x_p._n
call fcn.3000a570
add esp, 8
jmp 0x30019347
push eax
push ebx
push str.SetDump:_Dump_address_set_to_0x_p__size_0x_x_n
mov dword [0x3026dd90], eax
call fcn.3000a570
jmp 0x30019344
push str.SetDump:_Failed_to_set_dump_address._n
call fcn.3000a570
add esp, 4
jmp 0x30019347
push str.Dump
push edi
call fcn.3016475e
add esp, 8
test eax, eax
je 0x30019147
push 5
push str.Dump:
push edi
call fcn.301642c1
add esp, 0xc
test eax, eax
je 0x30019147
push str.Step2OEP
push edi
call fcn.3016475e
add esp, 8
test eax, eax
jne 0x30018d66
mov ecx, dword [esi + 4]
mov edx, 0x30017a10
call fcn.30007a90
mov dword [0x3026d8f8], 0
jmp 0x30019347
push str.Scan
push edi
call fcn.3016475e
add esp, 8
test eax, eax
jne 0x30018db3
mov ecx, dword [esp + 0x20]
call fcn.30002560
mov esi, eax
test ebx, ebx
je 0x30018d90
mov ecx, ebx
call fcn.30002560
mov esi, eax
push esi
push str.ActionDispatcher:_Scanning_region_at_0x_p._n
call fcn.3000a570
add esp, 8
mov ecx, esi
call fcn.30002650
mov edx, eax
mov ecx, esi
call fcn.3001e9f0
jmp 0x30019347
push 6
push str.SetBp0
push edi
call fcn.301642c1
add esp, 0xc
test eax, eax
jne 0x30018e16
mov ecx, dword [esp + 0x20]
call fcn.30002560
test ebx, ebx
je 0x30018e04
cmp ebx, eax
jae 0x30018dda
add ebx, eax
push ecx
mov ecx, dword [esi + 4]
xor edx, edx
push 0x3001a660
push 0
push 0
push ebx
push 0
call fcn.30007af0
push ebx
push str.SetBp0:_Breakpoint_0_set_to_0x_p._n
call fcn.3000a570
add esp, 0x20
jmp 0x30019347
push str.SetBp0:_Failed_to_obtain_breakpoint_address._n
call fcn.3000a570
add esp, 4
jmp 0x30019347
push 6
push str.SetBp1
push edi
call fcn.301642c1
add esp, 0xc
test eax, eax
jne 0x30018e7c
mov ecx, dword [esp + 0x20]
call fcn.30002560
test ebx, ebx
je 0x30018e6a
cmp ebx, eax
jae 0x30018e3d
add ebx, eax
push ecx
mov ecx, dword [esi + 4]
mov edx, 1
push 0x3001a660
push 0
push 0
push ebx
push 0
call fcn.30007af0
push ebx
push str.SetBp1:_Breakpoint_1_set_to_0x_p._n
call fcn.3000a570
add esp, 0x20
jmp 0x30019347
push str.SetBp1:_Failed_to_obtain_breakpoint_address._n
call fcn.3000a570
add esp, 4
jmp 0x30019347
push 6
push str.SetBp2
push edi
call fcn.301642c1
add esp, 0xc
test eax, eax
jne 0x30018ee2
mov ecx, dword [esp + 0x20]
call fcn.30002560
test ebx, ebx
je 0x30018ed0
cmp ebx, eax
jae 0x30018ea3
add ebx, eax
push ecx
mov ecx, dword [esi + 4]
mov edx, 2
push 0x3001a660
push 0
push 0
push ebx
push 0
call fcn.30007af0
push ebx
push str.SetBp2:_Breakpoint_2_set_to_0x_p._n
call fcn.3000a570
add esp, 0x20
jmp 0x30019347
push str.SetBp2:_Failed_to_obtain_breakpoint_address._n
call fcn.3000a570
add esp, 4
jmp 0x30019347
push 6
push str.SetBp3
push edi
call fcn.301642c1
add esp, 0xc
test eax, eax
jne 0x30018f48
mov ecx, dword [esp + 0x20]
call fcn.30002560
test ebx, ebx
je 0x30018f36
cmp ebx, eax
jae 0x30018f09
add ebx, eax
push ecx
mov ecx, dword [esi + 4]
mov edx, 3
push 0x3001a660
push 0
push 0
push ebx
push 0
call fcn.30007af0
push ebx
push str.SetBp3:_Breakpoint_3_set_to_0x_p._n
call fcn.3000a570
add esp, 0x20
jmp 0x30019347
push str.SetBp3:_Failed_to_obtain_breakpoint_address._n
call fcn.3000a570
add esp, 4
jmp 0x30019347
push str.DumpStack
push edi
call fcn.3016475e
add esp, 8
test eax, eax
jne 0x3001903f
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.3004ddd0
mov eax, dword fs:[4]
sub eax, esi
and eax, 0xfffffffc
cmp eax, 0x190
jbe 0x30019347
mov edx, 0x64
mov ecx, esi
call fcn.3004d5e0
test al, al
je 0x30019347
mov ebx, 0x64
jmp 0x30018fb0
mov ecx, dword [esi]
test ecx, ecx
je 0x3001902e
lea edx, [esp + 0x2c]
call fcn.3004ddd0
lea ecx, [edi + 4]
cmp esi, ecx
jne 0x30018ff8
mov edi, dword [edi]
test eax, eax
je 0x30018fe3
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.3000a570
add esp, 0x14
jmp 0x3001902e
mov ecx, dword [esi]
call fcn.30002a00
test eax, eax
je 0x3001902e
push dword [esi]
push esi
push str.0x_p:_t_0x_p_t___n
jmp 0x30019026
test eax, eax
je 0x30019013
push dword [esp + 0x2c]
push eax
push dword [esi]
push esi
push str.0x_p:_t_0x_p____s::0x_x_n
call fcn.3000a570
add esp, 0x14
jmp 0x3001902e
mov ecx, dword [esi]
call fcn.30002a00
test eax, eax
je 0x3001902e
push dword [esi]
push esi
push str.0x_p:_t_0x_p_n
call fcn.3000a570
add esp, 0xc
add esi, 4
sub ebx, 1
jne 0x30018fb0
jmp 0x30019347
push 6
push str.String
push edi
call fcn.301642c1
add esp, 0xc
test eax, eax
jne 0x3001908e
test ebx, ebx
je 0x3001907c
push ebx
push str.String_captured_at_0x_p:__
call fcn.3000a570
mov ecx, ebx
call fcn.30017030
push ebx
push 0x301f34a4
call fcn.3000a570
add esp, 0x10
jmp 0x30019347
push str.String:_Failed_to_obtain_string_address._n
call fcn.3000a570
add esp, 4
jmp 0x30019347
push 5
push 0x301f34d4
push edi
call fcn.301642c1
add esp, 0xc
test eax, eax
jne 0x300190f1
test ebx, ebx
je 0x300190df
push ebx
push str.ActionDispatcher:_Sleeping_for__d_milliseconds._n
call fcn.3000a570
add esp, 8
mov eax, ebx
cdq
push 0xffffffffffffffff
push 0xffffd8f0
push edx
push eax
call fcn.3015ab40
mov dword [esp + 0x20], eax
lea eax, [esp + 0x20]
push eax
push 0
mov dword [esp + 0x2c], edx
call dword [0x3026e810]
jmp 0x30019347
push str.ActionDispatcher:_Sleep_duration_not_supploed._n
call fcn.3000a570
add esp, 4
jmp 0x30019347
push str.Exit
push edi
call fcn.3016475e
add esp, 8
test eax, eax
jne 0x3001911e
push str.ActionDispatcher:_Terminating_process._n
call fcn.3000a570
add esp, 4
push 1
push 0
call fcn.3003a600
jmp 0x30019347
push str.custom
push edi
call fcn.3016475e
add esp, 8
test eax, eax
je 0x30019347
push edi
push str.ActionDispatcher:_Unrecognised_action:___s__n
call fcn.3000a570
add esp, 8
jmp 0x30019347
mov eax, dword [0x3026b468]
mov edx, dword [0x3026ed74]
test eax, eax
jne 0x30019171
mov eax, dword [0x3026b46c]
test eax, eax
jne 0x30019171
mov eax, dword [0x3026b470]
test eax, eax
jne 0x30019171
mov eax, dword [0x3026b474]
test eax, eax
je 0x30019174
mov dword [edx + 0x10], eax
mov ecx, 0x3026b58c
lea edi, [ecx + 1]
lea esp, [esp]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x30019180
sub ecx, edi
je 0x30019194
mov dword [edx + 0x24], 0x3026b58c
jmp 0x300191f2
mov ecx, 0x3026b690
lea edi, [ecx + 1]
lea esp, [esp]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x300191a0
sub ecx, edi
je 0x300191b4
mov dword [edx + 0x24], 0x3026b690
jmp 0x300191f2
mov ecx, 0x3026b794
lea edi, [ecx + 1]
lea esp, [esp]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x300191c0
sub ecx, edi
je 0x300191d4
mov dword [edx + 0x24], 0x3026b794
jmp 0x300191f2
mov ecx, 0x3026b898
lea edi, [ecx + 1]
lea esp, [esp]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x300191e0
sub ecx, edi
je 0x300191f9
mov dword [edx + 0x24], 0x3026b898
mov dword [edx + 0x10], 0x100
mov ecx, 0x3026d920
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x30019201
sub ecx, edx
je 0x3001923f
mov ecx, dword [esi + 4]
mov edx, 0x3026d920
call fcn.30017160
mov dword [0x3026dd90], eax
test eax, eax
jne 0x30019244
mov ecx, dword [esp + 0x18]
test ecx, ecx
je 0x30019244
push eax
push eax
lea eax, [ecx + 1]
push eax
call fcn.30166144
add esp, 0xc
mov dword [0x3026dd90], eax
jmp 0x30019244
mov eax, dword [0x3026dd90]
test ebx, ebx
jne 0x30019254
mov ecx, dword [0x3026dc70]
test ecx, ecx
je 0x30019254
mov ebx, ecx
mov ecx, dword [esp + 0x2c]
test ecx, ecx
je 0x30019275
push ecx
push str.ActionDispatcher:_Dump_size_set_to_0x_x_n
mov dword [0x3026dd90], ecx
call fcn.3000a570
mov eax, dword [0x3026dd90]
add esp, 8
test ebx, ebx
je 0x30019324
test eax, eax
je 0x300192f1
cmp eax, 0x1000000
jae 0x300192f1
mov ecx, dword [0x3026ed3c]
test ecx, ecx
je 0x30019299
dec ecx
mov dword [0x3026ed3c], ecx
mov edx, eax
mov ecx, ebx
call fcn.30005170
push dword [0x3026dd90]
push ebx
test eax, eax
je 0x300192cf
push str.ActionDispatcher:_Dumped_region_at_0x_p_size_0x_x._n
call fcn.3000a570
add esp, 0xc
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x330]
xor ecx, esp
call fcn.30159c2d
mov esp, ebp
pop ebp
ret
push str.ActionDispatcher:_Failed_to_dump_region_at_0x_p_size_0x_x._n
call fcn.3000a570
add esp, 0xc
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x330]
xor ecx, esp
call fcn.30159c2d
mov esp, ebp
pop ebp
ret
mov ecx, ebx
call fcn.300051e0
test eax, eax
je 0x3001931f
push ebx
push str.ActionDispatcher:_Dumped_region_at_0x_p._n
call fcn.3000a570
add esp, 8
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x330]
xor ecx, esp
call fcn.30159c2d
mov esp, ebp
pop ebp
ret
mov eax, dword [0x3026dd90]
push eax
push ebx
push str.ActionDispatcher:_Failed_to_dump_region_at_0x_p__size_0x_x._n
call fcn.3000a570
mov dword [0x3026dc70], 0
mov dword [0x3026dd90], 0
add esp, 0xc
mov ecx, dword [esp + 0x33c]
inc dword [0x3026dd8c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.30159c2d
mov esp, ebp
pop ebp
ret