Function at 0x416080
Capabilities:
Access peb ldr_data
Contain obfuscated stackstrings
Get common file path
Get hostname
Get ntdll base address
Get process heap flags
Get process heap force flags
Get program files directory
Initialize winsock library
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5d3191
mov eax, dword fs:[0]
push eax
push ecx
sub esp, 0x4f0
mov eax, dword [0x6385e0]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x4e4], ecx
mov eax, dword [ebp - 0x4e4]
mov dword [eax], vtable.HitmanPro35::HitmanPro.0
mov ecx, dword [ebp - 0x4e4]
mov byte [ecx + 0x1d], 1
mov ecx, dword [ebp - 0x4e4]
add ecx, 0x24
call fcn.004b34a0
mov dword [ebp - 4], 0
mov ecx, dword [ebp - 0x4e4]
add ecx, 0x3c
call fcn.00430720
mov byte [ebp - 4], 1
mov ecx, dword [ebp - 0x4e4]
add ecx, 0x54
call fcn.00401300
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x4e4]
add ecx, 0xa8
call fcn.004b34a0
mov byte [ebp - 4], 3
mov ecx, dword [ebp - 0x4e4]
add ecx, 0xb4
call fcn.00401300
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x4e4]
add ecx, 0xd0
call fcn.004b34a0
mov byte [ebp - 4], 5
mov ecx, dword [ebp - 0x4e4]
add ecx, 0xdc
call fcn.004b34a0
mov byte [ebp - 4], 6
mov ecx, dword [ebp - 0x4e4]
add ecx, 0xf0
call fcn.00407bf0
mov byte [ebp - 4], 7
mov ecx, dword [ebp - 0x4e4]
add ecx, 0x108
call fcn.004b34a0
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0x4e4]
add ecx, 0x114
call fcn.004b34a0
mov byte [ebp - 4], 9
mov ecx, dword [ebp - 0x4e4]
add ecx, 0x12c
call fcn.004ba6c0
mov byte [ebp - 4], 0xa
mov ecx, dword [ebp - 0x4e4]
add ecx, 0x14c
call fcn.004b34a0
mov byte [ebp - 4], 0xb
mov edx, dword [ebp - 0x4e4]
mov byte [edx + 0x159], 0
mov ecx, dword [ebp - 0x4e4]
add ecx, 0x160
call fcn.00407bf0
mov byte [ebp - 4], 0xc
mov ecx, dword [ebp - 0x4e4]
add ecx, 0x1c0
call fcn.004b34a0
mov byte [ebp - 4], 0xd
push 0
mov ecx, dword [ebp - 0x4e4]
add ecx, 0x1cc
call fcn.00401280
mov byte [ebp - 4], 0xe
push 0
mov ecx, dword [ebp - 0x4e4]
add ecx, 0x1d4
call fcn.00401280
mov byte [ebp - 4], 0xf
mov ecx, dword [ebp - 0x4e4]
add ecx, 0x1e8
call fcn.004309f0
mov byte [ebp - 4], 0x10
mov ecx, dword [ebp - 0x4e4]
add ecx, 0x200
call fcn.00430cd0
mov byte [ebp - 4], 0x11
mov ecx, dword [ebp - 0x4e4]
add ecx, 0x218
call fcn.00430fb0
mov byte [ebp - 4], 0x12
mov ecx, dword [ebp - 0x4e4]
add ecx, 0x230
call fcn.00431290
mov byte [ebp - 4], 0x13
mov ecx, dword [ebp - 0x4e4]
add ecx, 0x248
call fcn.00496420
mov byte [ebp - 4], 0x14
mov ecx, dword [ebp - 0x4e4]
add ecx, 0x268
call fcn.00431740
mov byte [ebp - 4], 0x15
mov ecx, dword [ebp - 0x4e4]
add ecx, 0x290
call fcn.00401300
mov byte [ebp - 4], 0x16
mov ecx, dword [ebp - 0x4e4]
add ecx, 0x2ac
call fcn.004318e0
mov byte [ebp - 4], 0x17
mov ecx, dword [ebp - 0x4e4]
add ecx, 0x2cc
call fcn.00406140
mov byte [ebp - 4], 0x18
mov ecx, dword [ebp - 0x4e4]
add ecx, 0x2ec
call fcn.00431b40
mov byte [ebp - 4], 0x19
mov ecx, dword [ebp - 0x4e4]
add ecx, 0x30c
call fcn.0042fe80
mov byte [ebp - 4], 0x1a
mov ecx, dword [ebp - 0x4e4]
add ecx, 0x32c
call fcn.0042fe80
mov byte [ebp - 4], 0x1b
mov ecx, dword [ebp - 0x4e4]
add ecx, 0x34c
call fcn.0042fe80
mov byte [ebp - 4], 0x1c
mov ecx, dword [ebp - 0x4e4]
add ecx, 0x36c
call fcn.0042fe80
mov byte [ebp - 4], 0x1d
mov ecx, dword [ebp - 0x4e4]
add ecx, 0x38c
call fcn.0042fe80
mov byte [ebp - 4], 0x1e
mov ecx, dword [ebp - 0x4e4]
add ecx, 0x3ac
call fcn.00401300
mov byte [ebp - 4], 0x1f
mov ecx, dword [ebp - 0x4e4]
add ecx, 0x3c8
call fcn.00431b40
mov byte [ebp - 4], 0x20
mov ecx, dword [ebp - 0x4e4]
add ecx, 0x3e8
call fcn.00401300
mov byte [ebp - 4], 0x21
mov ecx, dword [ebp - 0x4e4]
add ecx, 0x404
call fcn.00431b40
mov byte [ebp - 4], 0x22
mov ecx, dword [ebp - 0x4e4]
add ecx, 0x424
call fcn.00401300
mov byte [ebp - 4], 0x23
mov ecx, dword [ebp - 0x4e4]
add ecx, 0x440
call fcn.0042fe80
mov byte [ebp - 4], 0x24
mov ecx, dword [ebp - 0x4e4]
add ecx, 0x460
call fcn.0042fe80
mov byte [ebp - 4], 0x25
mov ecx, dword [ebp - 0x4e4]
add ecx, 0x480
call fcn.0042fe80
mov byte [ebp - 4], 0x26
mov ecx, dword [ebp - 0x4e4]
add ecx, 0x4a0
call fcn.0042fe80
mov byte [ebp - 4], 0x27
mov ecx, dword [ebp - 0x4e4]
add ecx, 0x4c0
call fcn.0042fe80
mov byte [ebp - 4], 0x28
mov ecx, dword [ebp - 0x4e4]
add ecx, 0x4e0
call fcn.00401300
mov byte [ebp - 4], 0x29
mov ecx, dword [ebp - 0x4e4]
add ecx, 0x4fc
call fcn.0042fe80
mov byte [ebp - 4], 0x2a
mov ecx, dword [ebp - 0x4e4]
add ecx, 0x740
call fcn.00431ff0
mov byte [ebp - 4], 0x2b
push 0
mov ecx, dword [ebp - 0x4e4]
add ecx, 0x75c
call fcn.00401280
mov byte [ebp - 4], 0x2c
mov ecx, dword [ebp - 0x4e4]
add ecx, 0x764
call fcn.00401300
mov byte [ebp - 4], 0x2d
mov ecx, dword [ebp - 0x4e4]
add ecx, 0x780
call fcn.004322d0
mov byte [ebp - 4], 0x2e
lea eax, [ebp - 0x1a8]
push eax
push 0x202
call dword [sym.imp.WS2_32.dll_WSAStartup]
mov ecx, dword [ebp - 0x4e4]
mov dword [ecx + 0x278], 0
mov edx, dword [ebp - 0x4e4]
mov dword [edx + 0x27c], 0
mov eax, dword [ebp - 0x4e4]
mov dword [eax + 0x280], 0
mov ecx, dword [ebp - 0x4e4]
mov dword [ecx + 0x284], 0
mov edx, dword [ebp - 0x4e4]
mov dword [edx + 0x288], 0
mov eax, dword [ebp - 0x4e4]
mov dword [eax + 0x28c], 0
mov ecx, dword [ebp - 0x4e4]
mov dword [ecx + 0x1e4], 0
mov edx, dword [ebp - 0x4e4]
mov dword [edx + 0x1a0], 0
mov eax, dword [ebp - 0x4e4]
mov dword [eax + 0x1a4], 0
mov ecx, dword [ebp - 0x4e4]
mov dword [ecx + 0x1b0], 0
mov edx, dword [ebp - 0x4e4]
mov dword [edx + 0x1ac], 0
mov eax, dword [ebp - 0x4e4]
mov dword [eax + 0x1a8], 0
mov ecx, dword [ebp - 0x4e4]
mov dword [ecx + 0x1b4], 0
mov edx, dword [ebp - 0x4e4]
mov dword [edx + 0x1b8], 0
mov eax, dword [ebp - 0x4e4]
mov dword [eax + 0x1dc], 0
mov ecx, dword [ebp - 0x4e4]
mov byte [ecx + 0x1c], 0
mov edx, dword [ebp - 0x4e4]
mov al, byte [ebp + 8]
mov byte [edx + 0x14], al
mov ecx, dword [ebp - 0x4e4]
fldz
fstp qword [ecx + 0x190]
mov edx, dword [ebp - 0x4e4]
mov byte [edx + 0x178], 0
mov eax, dword [ebp - 0x4e4]
mov dword [eax + 8], 0
mov ecx, dword [ebp - 0x4e4]
mov dword [ecx + 0xc], 0
mov edx, dword [ebp - 0x4e4]
mov byte [edx + 0x10], 0
mov eax, dword [ebp - 0x4e4]
mov byte [eax + 0x12], 0
mov ecx, dword [ebp - 0x4e4]
mov byte [ecx + 0x13], 0
mov edx, dword [ebp - 0x4e4]
mov byte [edx + 0x15], 1
mov eax, dword [ebp - 0x4e4]
mov byte [eax + 0x16], 0
mov ecx, dword [ebp - 0x4e4]
mov byte [ecx + 0x17], 0
mov edx, dword [ebp - 0x4e4]
mov byte [edx + 0x18], 0
mov eax, dword [ebp - 0x4e4]
mov byte [eax + 0x19], 0
mov ecx, dword [ebp - 0x4e4]
mov byte [ecx + 0x1a], 0
mov edx, dword [ebp - 0x4e4]
mov byte [edx + 0x1b], 0
mov eax, dword [ebp - 0x4e4]
mov byte [eax + 0x1f], 0
mov ecx, dword [ebp - 0x4e4]
mov byte [ecx + 0x20], 0
mov edx, dword [ebp - 0x4e4]
mov byte [edx + 0x1e], 0
mov eax, dword [ebp - 0x4e4]
mov dword [eax + 0x78], 0
mov ecx, dword [ebp - 0x4e4]
mov byte [ecx + 0x11], 0
mov edx, dword [ebp - 0x4e4]
mov byte [edx + 0x158], 0
mov eax, dword [ebp - 0x4e4]
mov byte [eax + 0x19c], 0
mov ecx, dword [ebp - 0x4e4]
mov dword [ecx + 0x198], 0
mov edx, dword [ebp - 0x4e4]
mov byte [edx + 0x19d], 0
mov eax, dword [ebp - 0x4e4]
mov dword [eax + 0x84], 0
mov ecx, dword [ebp - 0x4e4]
mov byte [ecx + 0x1bc], 0
mov edx, dword [ebp - 0x4e4]
mov dword [edx + 0x7c], 0xffffffff
mov eax, dword [ebp - 0x4e4]
mov byte [eax + 0x80], 1
mov ecx, dword [0x63e870]
push ecx
mov ecx, dword [ebp - 0x4e4]
add ecx, 0x24
call fcn.004b38f0
mov edx, dword [ebp - 0x4e4]
mov byte [edx + 0x50], 0
mov eax, dword [ebp - 0x4e4]
mov dword [eax + 0x70], 0
mov ecx, dword [ebp - 0x4e4]
mov dword [ecx + 0x74], 0
mov edx, dword [ebp - 0x4e4]
mov dword [edx + 0x51c], 0
mov eax, dword [ebp - 0x4e4]
mov dword [eax + 0x120], 0
mov ecx, dword [ebp - 0x4e4]
mov dword [ecx + 0x124], 0
mov edx, dword [ebp - 0x4e4]
mov dword [edx + 0x128], 0
push str.secure_memory_thread_safe_use_engines
lea ecx, [ebp - 0x4ac]
call fcn.00406a20
mov byte [ebp - 4], 0x2f
lea eax, [ebp - 0x4ac]
push eax
call fcn.005654e0
add esp, 4
mov byte [ebp - 4], 0x2e
lea ecx, [ebp - 0x4ac]
call fcn.00407260
mov ecx, dword [ebp - 0x4e4]
mov byte [ecx + 0x30], 0
mov edx, dword [ebp - 0x4e4]
mov byte [edx + 0x38], 0
call fcn.00545280
test eax, eax
jne 0x416843
mov eax, dword [ebp - 0x4e4]
mov byte [eax + 0x30], 1
push str.GetAddrInfoW
push str.Ws2_32.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [ebp - 0x4e4]
mov dword [ecx + 0x34], eax
mov edx, dword [ebp - 0x4e4]
cmp dword [edx + 0x34], 0
je 0x416843
mov eax, dword [ebp - 0x4e4]
mov ecx, dword [eax + 0x34]
push ecx
mov eax, 0x643668
mov ecx, 0x42f600
call fcn.005452d0
test eax, eax
jne 0x416843
mov edx, dword [ebp - 0x4e4]
mov eax, dword [edx + 0x34]
call fcn.005452f0
neg eax
sbb eax, eax
add eax, 1
mov ecx, dword [ebp - 0x4e4]
mov byte [ecx + 0x38], al
mov byte [ebp - 4], 0x30
lea ecx, [ebp - 0x41c]
call fcn.004bd640
mov byte [ebp - 4], 0x31
push 0x100
lea ecx, [ebp - 0x41c]
call fcn.004bd830
push 0x20
push 0x5fa65c
lea ecx, [ebp - 0x42c]
call fcn.00410d70
mov byte [ebp - 4], 0x32
push 0x10
push 0x5fa67c
lea ecx, [ebp - 0x43c]
call fcn.00410d70
mov byte [ebp - 4], 0x33
lea edx, [ebp - 0x43c]
push edx
lea eax, [ebp - 0x42c]
push eax
lea ecx, [ebp - 0x41c]
call fcn.004bd790
mov dword [ebp - 0x4e8], eax
mov ecx, dword [ebp - 0x4e4]
mov edx, dword [ebp - 0x4e8]
mov dword [ecx + 0x70], edx
lea eax, [ebp - 0x43c]
push eax
lea ecx, [ebp - 0x42c]
push ecx
lea ecx, [ebp - 0x41c]
call fcn.004bd6f0
mov dword [ebp - 0x4ec], eax
mov edx, dword [ebp - 0x4e4]
mov eax, dword [ebp - 0x4ec]
mov dword [edx + 0x74], eax
mov ecx, dword [ebp - 0x4e4]
call fcn.00417fe0
mov byte [ebp - 4], 0x32
lea ecx, [ebp - 0x43c]
call fcn.00410df0
mov byte [ebp - 4], 0x31
lea ecx, [ebp - 0x42c]
call fcn.00410df0
mov byte [ebp - 4], 0x30
lea ecx, [ebp - 0x41c]
call fcn.004bd6c0
jmp 0x416935
mov dword [ebp - 4], 0x2e
mov ecx, dword [ebp - 0x4e4]
call fcn.0041afe0
call fcn.00429e20
mov ecx, dword [ebp - 0x4e4]
call fcn.00417af0
mov ecx, dword [ebp - 0x4e4]
call fcn.0042b4e0
mov dword [ebp - 0x3e0], 0x10
lea ecx, [ebp - 0x3e0]
push ecx
mov edx, dword [ebp - 0x4e4]
add edx, 0x88
push edx
call dword [sym.imp.KERNEL32.dll_GetComputerNameW]
lea eax, [ebp - 0x3d8]
push eax
push 0
push 0
push 0x26
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
lea ecx, [ebp - 0x3d8]
push ecx
mov ecx, dword [ebp - 0x4e4]
add ecx, 0x108
call fcn.004b38f0
lea edx, [ebp - 0x3d8]
push edx
push 0
push 0
push 0x2b
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
lea eax, [ebp - 0x3d8]
push eax
mov ecx, dword [ebp - 0x4e4]
add ecx, 0x114
call fcn.004b38f0
push 0
push str.SOFTWAREHitman_Pro
call fcn.00414b30
mov ecx, eax
call fcn.00414830
mov dword [ebp - 0x3dc], eax
cmp dword [ebp - 0x3dc], 0
je 0x416afe
lea ecx, [ebp - 0x44c]
push ecx
push str.AutoUpdate
mov ecx, dword [ebp - 0x3dc]
call fcn.00414450
movzx edx, al
test edx, edx
je 0x416a45
mov eax, dword [ebp - 0x4e4]
movzx ecx, byte [eax + 0x14]
test ecx, ecx
je 0x416a45
cmp dword [ebp - 0x44c], 0
jne 0x416a45
mov edx, dword [ebp - 0x4e4]
mov byte [edx + 0x14], 0
lea eax, [ebp - 0x44c]
push eax
push str.NoInstall
mov ecx, dword [ebp - 0x3dc]
call fcn.00414450
movzx ecx, al
test ecx, ecx
je 0x416a84
mov edx, dword [ebp - 0x4e4]
movzx eax, byte [edx + 0x18]
test eax, eax
jne 0x416a84
cmp dword [ebp - 0x44c], 0
je 0x416a84
mov ecx, dword [ebp - 0x4e4]
mov byte [ecx + 0x18], 1
lea ecx, [ebp - 0x448]
call fcn.004b34a0
mov byte [ebp - 4], 0x35
lea edx, [ebp - 0x448]
push edx
push str.DiskAccessMode
mov ecx, dword [ebp - 0x3dc]
call fcn.004141d0
movzx eax, al
test eax, eax
je 0x416ad5
push str.Compatible
lea ecx, [ebp - 0x448]
call fcn.004b4b00
movzx ecx, al
test ecx, ecx
je 0x416ad5
mov edx, dword [ebp - 0x4e4]
mov dword [edx + 0xc], 1
mov eax, dword [ebp - 0x4e4]
add eax, 0x24
push eax
push str.LogPath
mov ecx, dword [ebp - 0x3dc]
call fcn.004141d0
mov byte [ebp - 4], 0x2e
lea ecx, [ebp - 0x448]
call fcn.004b3860
lea ecx, [ebp - 0x3ec]
call fcn.004b34a0
mov byte [ebp - 4], 0x36
push 0x400
lea ecx, [ebp - 0x3ec]
call fcn.004b3dd0
lea ecx, [ebp - 0x3ec]
call fcn.004b9730
push eax
lea ecx, [ebp - 0x3ec]
call fcn.004553f0
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
push eax
lea ecx, [ebp - 0x3ec]
call fcn.004b5930
lea ecx, [ebp - 0x3ec]
push ecx
lea edx, [ebp - 0x4bc]
push edx
call fcn.004132d0
add esp, 8
mov dword [ebp - 0x4f0], eax
mov eax, dword [ebp - 0x4f0]
mov dword [ebp - 0x4f4], eax
mov byte [ebp - 4], 0x37
push 0
push str.beta
mov ecx, dword [ebp - 0x4f4]
call fcn.004b4600
mov byte [ebp - 0x4ad], al
mov byte [ebp - 4], 0x36
lea ecx, [ebp - 0x4bc]
call fcn.004b3860
movzx ecx, byte [ebp - 0x4ad]
test ecx, ecx
je 0x416bc5
mov edx, dword [ebp - 0x4e4]
mov byte [edx + 0x1c], 1
mov eax, dword [ebp - 0x4e4]
mov byte [eax + 0x14], 0
mov ecx, dword [ebp - 0x4e4]
mov byte [ecx + 0x18], 1
lea edx, [ebp - 0x1cc]
push edx
push 0
lea ecx, [ebp - 0x3ec]
call fcn.004553f0
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesExW]
test eax, eax
je 0x416ccf
cmp dword [ebp - 0x1b8], 0x55555555
jne 0x416bfe
mov eax, dword [ebp - 0x4e4]
mov byte [eax + 0x1d], 0
lea ecx, [ebp - 0x458]
push ecx
lea edx, [ebp - 0x1b8]
push edx
call dword [sym.imp.KERNEL32.dll_FileTimeToLocalFileTime]
test eax, eax
je 0x416ccf
push 0
mov eax, dword [ebp - 0x454]
push eax
mov ecx, dword [ebp - 0x458]
push ecx
lea ecx, [ebp - 0x470]
call fcn.00411460
call fcn.0042e5c0
push eax
lea ecx, [ebp - 0x488]
call fcn.00411420
lea edx, [ebp - 0x470]
push edx
lea eax, [ebp - 0x4d0]
push eax
lea ecx, [ebp - 0x488]
call fcn.00407c50
mov dword [ebp - 0x4f8], eax
mov ecx, dword [ebp - 0x4f8]
call fcn.00407ba0
fstp qword [ebp - 0x490]
lea ecx, [ebp - 0x4d0]
call fcn.00407b80
fld qword [ebp - 0x490]
fabs
fcomp qword [0x612c00]
fnstsw ax
test ah, 1
jne 0x416cb9
cmp dword [ebp - 0x3dc], 0
je 0x416caf
push str.AutoUpdate
mov ecx, dword [ebp - 0x3dc]
call fcn.00414000
mov ecx, dword [ebp - 0x4e4]
mov byte [ecx + 0x14], 1
lea ecx, [ebp - 0x488]
call fcn.00407c30
lea ecx, [ebp - 0x470]
call fcn.00407c30
cmp dword [ebp - 0x3dc], 0
je 0x416d1f
mov edx, dword [ebp - 0x3dc]
mov dword [ebp - 0x4d8], edx
mov eax, dword [ebp - 0x4d8]
mov dword [ebp - 0x4d4], eax
cmp dword [ebp - 0x4d4], 0
je 0x416d15
push 1
mov ecx, dword [ebp - 0x4d4]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x4d4]
mov eax, dword [edx]
call eax
mov dword [ebp - 0x4fc], eax
jmp 0x416d1f
mov dword [ebp - 0x4fc], 0
push 0
mov ecx, dword [ebp - 0x4e4]
add ecx, 0x108
push ecx
lea ecx, [ebp - 0x3ec]
call fcn.004b69b0
movzx edx, al
test edx, edx
je 0x416d4a
mov eax, dword [ebp - 0x4e4]
mov byte [eax + 0x1f], 1
push 0x50
call fcn.0054d57b
add esp, 4
mov dword [ebp - 0x4e0], eax
mov byte [ebp - 4], 0x38
cmp dword [ebp - 0x4e0], 0
je 0x416d81
mov ecx, dword [ebp - 0x4e4]
push ecx
mov ecx, dword [ebp - 0x4e0]
call fcn.0043f8e0
mov dword [ebp - 0x500], eax
jmp 0x416d8b
mov dword [ebp - 0x500], 0
mov edx, dword [ebp - 0x500]
mov dword [ebp - 0x4dc], edx
mov byte [ebp - 4], 0x36
mov eax, dword [ebp - 0x4e4]
mov ecx, dword [ebp - 0x4dc]
mov dword [eax + 0x1e0], ecx
mov ecx, dword [ebp - 0x4e4]
call fcn.0041b580
push 2
mov ecx, dword [ebp - 0x4e4]
call fcn.0041afa0
mov byte [ebp - 4], 0x2e
lea ecx, [ebp - 0x3ec]
call fcn.004b3860
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x4e4]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.0054d4f5
mov esp, ebp
pop ebp
ret 4