Function at 0x10003790
Capabilities:
Enumerate pe sections
Resolve function by parsing pe exports

Disassembly:
sub esp, 0xf0
push ebx
push esi
mov esi, dword [esp + 0xfc]
push edi
push str._nCHECK_TAGS:_starting_n
call fcn.100014f0
push 4
push 0x200
push 0x40
push 0x40
push str.temp_utf8_map
call fcn.10012500
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x11c]
add eax, esi
add esp, 0x18
mov dword [esp + 0x2c], 0
mov dword [esp + 0xe8], eax
cmp esi, eax
jae 0x10004974
push ebp
jmp 0x100037f0
movzx ecx, byte [esi]
movzx edx, byte [esi + 1]
movzx eax, byte [esi + 2]
mov ebp, dword [esp + 0x30]
mov byte [esp + 0xd0], dl
movzx edx, byte [esi + 4]
mov dword [esp + 0x18], ecx
movzx ecx, byte [esi + 3]
mov byte [esp + 0xd1], al
mov byte [esp + 0xd2], cl
mov byte [esp + 0xd3], dl
mov eax, dword [esp + 0xd0]
inc ebp
mov ebx, esi
sub ebx, dword [esp + 0x104]
push eax
mov dword [esp + 0x34], ebp
call fcn.1000ef90
movzx ecx, byte [esi + 5]
movzx edx, byte [esi + 6]
movzx eax, byte [esi + 7]
mov byte [esp + 0xb8], cl
movzx ecx, byte [esi + 8]
mov byte [esp + 0xb9], dl
mov byte [esp + 0xba], al
mov byte [esp + 0xbb], cl
mov edx, dword [esp + 0xb8]
push edx
add esi, 9
call fcn.1000ef90
mov edi, eax
mov eax, dword [esp + 0x20]
dec eax
add esp, 8
cmp eax, 0x2b
ja case.0x10003898.8
movzx eax, byte [eax + 0x10004a50]
jmp dword [eax*4 + 0x10004a14]
cmp edi, 4
jae 0x100038bf
push 0x37c
push str.hprof_check.c
push str.size__int_sizeof_HprofId_
push 0
push 1
call fcn.10005d70
add esp, 0x14
movzx ecx, byte [esi]
mov dl, byte [esi + 1]
mov al, byte [esi + 2]
mov byte [esp + 0xc4], cl
movzx ecx, byte [esi + 3]
mov byte [esp + 0xc5], dl
mov byte [esp + 0xc6], al
mov byte [esp + 0xc7], cl
mov edx, dword [esp + 0xc4]
push edx
add esi, 4
call fcn.1000ef90
push eax
push edi
push str.HPROF_UTF8
push ebx
push ebp
push str._d__d:__s__sz_d__name_id0x_x___
mov dword [esp + 0x3c], eax
call fcn.100014f0
add edi, 0xfffffffc
mov eax, edi
call fcn.10001480
push 0x100192a0
call fcn.100014f0
lea eax, [edi + 1]
push eax
call fcn.10015d30
push edi
push esi
push eax
mov dword [esp + 0x114], eax
call dword [sym.imp.msvcr100.dll_strncpy]
mov ecx, dword [esp + 0x114]
lea edx, [esp + 0x114]
push edx
push 4
lea eax, [esp + 0x58]
mov byte [ecx + edi], 0
mov ecx, dword [esp + 0x60]
push eax
push ecx
call fcn.10012860
add esp, 0x40
jmp 0x10004943
cmp edi, 0x10
je 0x10003988
push 0x38b
push str.hprof_check.c
push str.size242_int_sizeof_HprofId_
push 0
push 1
call fcn.10005d70
add esp, 0x14
movzx edx, byte [esi]
mov al, byte [esi + 1]
mov cl, byte [esi + 2]
mov byte [esp + 0x98], dl
movzx edx, byte [esi + 3]
mov byte [esp + 0x99], al
mov byte [esp + 0x9a], cl
mov byte [esp + 0x9b], dl
mov eax, dword [esp + 0x98]
push eax
call fcn.1000ef90
mov ecx, dword [0x1001e7f8]
add esp, 4
mov dword [esp + 0x10], eax
cmp eax, dword [ecx + 0x150]
jb 0x100039dd
mov edx, eax
cmp edx, dword [ecx + 0x16c]
jb 0x100039f8
push 0x38d
push str.hprof_check.c
push str._class_serial_num____gdata__class_serial_number_start___class_serial_num____gdata__class_serial_number_counter
push 0
push 1
call fcn.10005d70
add esp, 0x14
movzx eax, byte [esi + 4]
movzx ecx, byte [esi + 5]
movzx edx, byte [esi + 6]
mov byte [esp + 0x40], al
movzx eax, byte [esi + 7]
mov byte [esp + 0x41], cl
mov byte [esp + 0x42], dl
mov byte [esp + 0x43], al
mov ecx, dword [esp + 0x40]
push ecx
call fcn.1000ef90
mov dword [esp + 0x24], eax
movzx edx, byte [esi + 8]
movzx eax, byte [esi + 9]
movzx ecx, byte [esi + 0xa]
mov byte [esp + 0xd8], dl
movzx edx, byte [esi + 0xb]
mov byte [esp + 0xd9], al
mov byte [esp + 0xda], cl
mov byte [esp + 0xdb], dl
mov eax, dword [esp + 0xd8]
push eax
call fcn.1000ef90
mov ecx, dword [0x1001e7f8]
add esp, 8
mov dword [esp + 0x14], eax
cmp eax, dword [ecx + 0x158]
jb 0x10003a7e
mov edx, eax
cmp edx, dword [ecx + 0x174]
jb 0x10003a99
push 0x390
push str.hprof_check.c
push str._trace_serial_num____gdata__trace_serial_number_start___trace_serial_num____gdata__trace_serial_number_counter
push 0
push 1
call fcn.10005d70
add esp, 0x14
movzx eax, byte [esi + 0xc]
mov cl, byte [esi + 0xd]
mov dl, byte [esi + 0xe]
mov byte [esp + 0x48], al
movzx eax, byte [esi + 0xf]
mov byte [esp + 0x49], cl
mov byte [esp + 0x4a], dl
mov byte [esp + 0x4b], al
mov ecx, dword [esp + 0x48]
push ecx
add esi, 0x10
call fcn.1000ef90
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
push eax
mov eax, dword [esp + 0x28]
push edx
push eax
push ecx
push edi
push str.HPROF_LOAD_CLASS
push ebx
push ebp
push str._d__d:__s__sz_d__class_serial_num_u__id0x_x__trace_serial_num_u__name_id0x_x_n
call fcn.100014f0
add esp, 0x28
jmp 0x10004945
cmp edi, 4
je 0x10003b0e
push 0x398
push str.hprof_check.c
push str.size4
push 0
push 1
call fcn.10005d70
add esp, 0x14
movzx edx, byte [esi]
mov al, byte [esi + 1]
mov cl, byte [esi + 2]
mov byte [esp + 0xa0], dl
movzx edx, byte [esi + 3]
mov byte [esp + 0xa1], al
mov byte [esp + 0xa2], cl
mov byte [esp + 0xa3], dl
mov eax, dword [esp + 0xa0]
push eax
add esi, 4
call fcn.1000ef90
mov ecx, dword [0x1001e7f8]
add esp, 4
mov dword [esp + 0x10], eax
cmp eax, dword [ecx + 0x150]
jb 0x10003b66
mov edx, eax
cmp edx, dword [ecx + 0x16c]
jb 0x10003b81
push 0x39a
push str.hprof_check.c
push str._class_serial_num____gdata__class_serial_number_start___class_serial_num____gdata__class_serial_number_counter
push 0
push 1
call fcn.10005d70
add esp, 0x14
mov eax, dword [esp + 0x10]
push eax
push edi
push str.HPROF_UNLOAD_CLASS
push ebx
push ebp
push str._d__d:__s__sz_d__class_serial_num_u_n
call fcn.100014f0
add esp, 0x18
jmp 0x10004945
cmp edi, 0x18
je 0x10003bc0
push 0x39f
push str.hprof_check.c
push str.size244_int_sizeof_HprofId_
push 0
push 1
call fcn.10005d70
add esp, 0x14
movzx ecx, byte [esi]
movzx edx, byte [esi + 1]
movzx eax, byte [esi + 2]
mov byte [esp + 0x50], cl
movzx ecx, byte [esi + 3]
mov byte [esp + 0x51], dl
mov byte [esp + 0x52], al
mov byte [esp + 0x53], cl
mov edx, dword [esp + 0x50]
push edx
call fcn.1000ef90
mov dword [esp + 0x24], eax
movzx eax, byte [esi + 4]
movzx ecx, byte [esi + 5]
movzx edx, byte [esi + 6]
mov byte [esp + 0xd0], al
movzx eax, byte [esi + 7]
mov byte [esp + 0xd1], cl
mov byte [esp + 0xd2], dl
mov byte [esp + 0xd3], al
mov ecx, dword [esp + 0xd0]
push ecx
call fcn.1000ef90
movzx edx, byte [esi + 8]
movzx ecx, byte [esi + 0xa]
mov dword [esp + 0x24], eax
movzx eax, byte [esi + 9]
mov byte [esp + 0x60], dl
movzx edx, byte [esi + 0xb]
mov byte [esp + 0x61], al
mov byte [esp + 0x62], cl
mov byte [esp + 0x63], dl
mov eax, dword [esp + 0x60]
push eax
call fcn.1000ef90
movzx ecx, byte [esi + 0xc]
movzx edx, byte [esi + 0xd]
mov byte [esp + 0xb4], cl
movzx ecx, byte [esi + 0xf]
mov dword [esp + 0x38], eax
movzx eax, byte [esi + 0xe]
mov byte [esp + 0xb5], dl
mov byte [esp + 0xb6], al
mov byte [esp + 0xb7], cl
mov edx, dword [esp + 0xb4]
push edx
call fcn.1000ef90
movzx ecx, byte [esi + 0x11]
movzx edx, byte [esi + 0x12]
mov dword [esp + 0x24], eax
movzx eax, byte [esi + 0x10]
mov byte [esp + 0x70], al
movzx eax, byte [esi + 0x13]
mov byte [esp + 0x71], cl
mov byte [esp + 0x72], dl
mov byte [esp + 0x73], al
mov ecx, dword [esp + 0x70]
push ecx
call fcn.1000ef90
mov ecx, dword [0x1001e7f8]
add esp, 0x14
mov dword [esp + 0x10], eax
cmp eax, dword [ecx + 0x150]
jb 0x10003cde
mov edx, eax
cmp edx, dword [ecx + 0x16c]
jb 0x10003cf9
push 0x3a5
push str.hprof_check.c
push str._class_serial_num____gdata__class_serial_number_start___class_serial_num____gdata__class_serial_number_counter
push 0
push 1
call fcn.10005d70
add esp, 0x14
movzx eax, byte [esi + 0x14]
mov cl, byte [esi + 0x15]
mov dl, byte [esi + 0x16]
mov byte [esp + 0xbc], al
movzx eax, byte [esi + 0x17]
mov byte [esp + 0xbd], cl
mov byte [esp + 0xbe], dl
mov byte [esp + 0xbf], al
mov ecx, dword [esp + 0xbc]
push ecx
add esi, 0x18
call fcn.1000ef90
push edi
push str.HPROF_FRAME
push ebx
push ebp
push str._d__d:__s__sz_d_
mov dword [esp + 0x30], eax
call fcn.100014f0
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x40]
push edx
mov edi, 0x10019434
call fcn.10001780
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x30]
push eax
mov eax, dword [esp + 0x4c]
push ecx
mov ecx, dword [esp + 0x40]
push edx
push eax
push ecx
push str._name_id0x_x__sig_id0x_x__source_id0x_x__class_serial_num_u__lineno_d_n
call fcn.100014f0
add esp, 0x34
jmp 0x10004945
cmp edi, 0xc
jae 0x10003da7
push 0x3ae
push str.hprof_check.c
push str.size_34
push 0
push 1
call fcn.10005d70
add esp, 0x14
movzx edx, byte [esi]
mov al, byte [esi + 1]
mov cl, byte [esi + 2]
mov byte [esp + 0x68], dl
movzx edx, byte [esi + 3]
mov byte [esp + 0x69], al
mov byte [esp + 0x6a], cl
mov byte [esp + 0x6b], dl
mov eax, dword [esp + 0x68]
push eax
call fcn.1000ef90
mov ecx, dword [0x1001e7f8]
add esp, 4
mov dword [esp + 0x14], eax
cmp eax, dword [ecx + 0x158]
jb 0x10003ded
mov edx, eax
cmp edx, dword [ecx + 0x174]
jb 0x10003e08
push 0x3b0
push str.hprof_check.c
push str._trace_serial_num____gdata__trace_serial_number_start___trace_serial_num____gdata__trace_serial_number_counter
push 0
push 1
call fcn.10005d70
add esp, 0x14
movzx eax, byte [esi + 4]
movzx ecx, byte [esi + 5]
movzx edx, byte [esi + 6]
mov byte [esp + 0xb0], al
movzx eax, byte [esi + 7]
mov byte [esp + 0xb1], cl
mov byte [esp + 0xb2], dl
mov byte [esp + 0xb3], al
mov ecx, dword [esp + 0xb0]
push ecx
call fcn.1000ef90
movzx edx, byte [esi + 8]
movzx ecx, byte [esi + 0xa]
mov dword [esp + 0x14], eax
movzx eax, byte [esi + 9]
mov byte [esp + 0x74], dl
movzx edx, byte [esi + 0xb]
mov byte [esp + 0x75], al
mov byte [esp + 0x76], cl
mov byte [esp + 0x77], dl
mov eax, dword [esp + 0x74]
push eax
add esi, 0xc
call fcn.1000ef90
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
push eax
push ecx
push edx
push edi
push str.HPROF_TRACE
push ebx
push ebp
push str._d__d:__s__sz_d__trace_serial_num_u__thread_serial_num_u__nelems_d__
mov dword [esp + 0x40], eax
call fcn.100014f0
add esp, 0x28
cmp dword [esp + 0x18], 0
jle 0x10003eeb
mov edi, dword [esp + 0x18]
movzx eax, byte [esi]
mov cl, byte [esi + 1]
mov dl, byte [esi + 2]
mov byte [esp + 0xc8], al
movzx eax, byte [esi + 3]
mov byte [esp + 0xc9], cl
mov byte [esp + 0xca], dl
mov byte [esp + 0xcb], al
mov ecx, dword [esp + 0xc8]
push ecx
add esi, 4
call fcn.1000ef90
push eax
push str.0x_x_
call fcn.100014f0
add esp, 0xc
dec edi
jne 0x10003ea1
push 0x10019c98
call fcn.100014f0
add esp, 4
jmp 0x10004945
cmp edi, 0x22
jae 0x10003f1d
push 0x3bd
push str.hprof_check.c
push str.size_24428
push 0
push 1
call fcn.10005d70
add esp, 0x14
movzx edx, byte [esi]
movzx eax, byte [esi + 1]
mov byte [esp + 0xe8], dl
mov byte [esp + 0xe9], al
mov ecx, dword [esp + 0xe8]
push ecx
call fcn.1000ef80
movzx edx, byte [esi + 2]
movzx ecx, byte [esi + 4]
mov dword [esp + 0x1c], eax
movzx eax, byte [esi + 3]
mov byte [esp + 0x7c], dl
movzx edx, byte [esi + 5]
mov byte [esp + 0x7d], al
mov byte [esp + 0x7e], cl
mov byte [esp + 0x7f], dl
mov eax, dword [esp + 0x7c]
push eax
call fcn.1000ef90
movzx ecx, byte [esi + 6]
movzx edx, byte [esi + 7]
mov byte [esp + 0xc0], cl
movzx ecx, byte [esi + 9]
mov dword [esp + 0x104], eax
movzx eax, byte [esi + 8]
mov byte [esp + 0xc1], dl
mov byte [esp + 0xc2], al
mov byte [esp + 0xc3], cl
mov edx, dword [esp + 0xc0]
push edx
call fcn.1000ef90
movzx ecx, byte [esi + 0xb]
movzx edx, byte [esi + 0xc]
mov dword [esp + 0x20], eax
movzx eax, byte [esi + 0xa]
mov byte [esp + 0x8c], al
movzx eax, byte [esi + 0xd]
mov byte [esp + 0x8d], cl
mov byte [esp + 0x8e], dl
mov byte [esp + 0x8f], al
mov ecx, dword [esp + 0x8c]
add esi, 0xe
push ecx
mov dword [esp + 0x20], esi
call fcn.1000ef90
lea esi, [esp + 0x20]
mov dword [esp + 0x2c], eax
call fcn.10001140
mov dword [esp + 0xec], eax
mov dword [esp + 0xf0], edx
call fcn.10001140
mov esi, dword [esp + 0x20]
movzx ecx, byte [esi + 2]
mov dword [esp + 0x108], edx
movzx edx, byte [esi]
mov dword [esp + 0x104], eax
movzx eax, byte [esi + 1]
mov byte [esp + 0x44], dl
movzx edx, byte [esi + 3]
mov byte [esp + 0x45], al
mov byte [esp + 0x46], cl
mov byte [esp + 0x47], dl
mov eax, dword [esp + 0x44]
push eax
add esi, 4
call fcn.1000ef90
mov ecx, dword [esp + 0x108]
add esp, 0x14
mov ebp, eax
mov eax, dword [esp + 0xf8]
push ebp
push ecx
push eax
mov edx, eax
mov eax, dword [esp + 0xe8]
push eax
mov eax, dword [esp + 0xf0]
mov ecx, eax
sar edx, 0x1f
sar ecx, 0x1f
push eax
mov edx, dword [esp + 0x30]
fld dword [esp + 0x110]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
push edx
mov edx, dword [esp + 0x48]
push eax
sub esp, 8
fstp qword [esp]
push ecx
push edi
push str.HPROF_ALLOC_SITES
push ebx
push edx
push str._d__d:__s__sz_d__flags0x_x__cutoff_g__nblive_d__nilive_d__tbytes__d__d___tinsts__d__d___num_elements_d_n
call fcn.100014f0
add esp, 0x3c
xor edi, edi
test ebp, ebp
jle 0x10004945
mov edi, edi
movzx eax, byte [esi]
movzx ecx, byte [esi + 1]
mov dl, byte [esi + 2]
mov byte [esp + 0x88], cl
movzx ecx, byte [esi + 4]
mov byte [esp + 0x27], al
movzx eax, byte [esi + 3]
mov byte [esp + 0x89], dl
mov byte [esp + 0x8a], al
mov byte [esp + 0x8b], cl
mov edx, dword [esp + 0x88]
push edx
call fcn.1000ef90
mov ecx, dword [0x1001e7f8]
add esp, 4
mov dword [esp + 0x10], eax
cmp eax, dword [ecx + 0x150]
jb 0x1000411c
cmp eax, dword [ecx + 0x16c]
jb 0x10004137
push 0x3d1
push str.hprof_check.c
push str._class_serial_num____gdata__class_serial_number_start___class_serial_num____gdata__class_serial_number_counter
push 0
push 1
call fcn.10005d70
add esp, 0x14
movzx eax, byte [esi + 5]
mov cl, byte [esi + 6]
mov dl, byte [esi + 7]
mov byte [esp + 0xd8], al
movzx eax, byte [esi + 8]
mov byte [esp + 0xd9], cl
mov byte [esp + 0xda], dl
mov byte [esp + 0xdb], al
mov ecx, dword [esp + 0xd8]
push ecx
call fcn.1000ef90
mov ecx, dword [0x1001e7f8]
add esp, 4
mov dword [esp + 0x14], eax
cmp eax, dword [ecx + 0x158]
jb 0x1000418b
cmp eax, dword [ecx + 0x174]
jb 0x100041a6
push 0x3d3
push str.hprof_check.c
push str._trace_serial_num____gdata__trace_serial_number_start___trace_serial_num____gdata__trace_serial_number_counter
push 0
push 1
call fcn.10005d70
add esp, 0x14
movzx edx, byte [esi + 9]
movzx eax, byte [esi + 0xa]
movzx ecx, byte [esi + 0xb]
mov byte [esp + 0x90], dl
movzx edx, byte [esi + 0xc]
mov byte [esp + 0x91], al
mov byte [esp + 0x92], cl
mov byte [esp + 0x93], dl
mov eax, dword [esp + 0x90]
push eax
call fcn.1000ef90
movzx ecx, byte [esi + 0xd]
movzx edx, byte [esi + 0xe]
mov byte [esp + 0xc4], cl
movzx ecx, byte [esi + 0x10]
mov ebx, eax
movzx eax, byte [esi + 0xf]
mov byte [esp + 0xc5], dl
mov byte [esp + 0xc6], al
mov byte [esp + 0xc7], cl
mov edx, dword [esp + 0xc4]
push edx
call fcn.1000ef90
movzx ecx, byte [esi + 0x12]
movzx edx, byte [esi + 0x13]
mov dword [esp + 0x24], eax
movzx eax, byte [esi + 0x11]
mov byte [esp + 0x40], al
movzx eax, byte [esi + 0x14]
mov byte [esp + 0x41], cl
mov byte [esp + 0x42], dl
mov byte [esp + 0x43], al
mov ecx, dword [esp + 0x40]
push ecx
call fcn.1000ef90
movzx edx, byte [esi + 0x15]
movzx ecx, byte [esi + 0x17]
mov dword [esp + 0xe8], eax
movzx eax, byte [esi + 0x16]
mov byte [esp + 0x48], dl
movzx edx, byte [esi + 0x18]
mov byte [esp + 0x49], al
mov byte [esp + 0x4a], cl
mov byte [esp + 0x4b], dl
mov eax, dword [esp + 0x48]
push eax
mov dword [esp + 0xf0], 0
add esi, 0x19
call fcn.1000ef90
mov ecx, dword [esp + 0xec]
mov edx, dword [esp + 0x2c]
push eax
mov eax, dword [esp + 0x28]
push ecx
mov ecx, dword [esp + 0x28]
push edx
movzx edx, byte [esp + 0x43]
push ebx
push eax
push ecx
push edx
push edi
push str._t__d:_ty_d__class_serial_num_u__trace_serial_num_u__nblive_d__nilive_d__tbytes_d__tinsts_d_n
mov dword [esp + 0x12c], 0
call fcn.100014f0
inc edi
add esp, 0x34
cmp edi, ebp
jl 0x100040c0
jmp 0x10004945
cmp edi, 0x18
je 0x100042ed
push 0x3e0
push str.hprof_check.c
push str.size2428
push 0
push 1
call fcn.10005d70
add esp, 0x14
movzx eax, byte [esi]
movzx ecx, byte [esi + 1]
movzx edx, byte [esi + 2]
mov byte [esp + 0x44], al
movzx eax, byte [esi + 3]
mov byte [esp + 0x45], cl
mov byte [esp + 0x46], dl
mov byte [esp + 0x47], al
mov ecx, dword [esp + 0x44]
push ecx
call fcn.1000ef90
movzx edx, byte [esi + 4]
movzx ecx, byte [esi + 6]
mov dword [esp + 0x18], eax
movzx eax, byte [esi + 5]
mov byte [esp + 0x50], dl
movzx edx, byte [esi + 7]
mov byte [esp + 0x51], al
mov byte [esp + 0x52], cl
mov byte [esp + 0x53], dl
mov eax, dword [esp + 0x50]
add esi, 8
push eax
mov dword [esp + 0x18], esi
call fcn.1000ef90
lea esi, [esp + 0x18]
mov dword [esp + 0x24], eax
call fcn.10001140
mov dword [esp + 0xe4], eax
mov ebp, edx
call fcn.10001140
push eax
push edx
mov ecx, edx
mov edx, dword [esp + 0xec]
push edx
mov edx, dword [esp + 0x28]
push ebp
sar ecx, 0x1f
mov ecx, dword [esp + 0x34]
push ecx
push edx
push edi
push str.HPROF_HEAP_SUMMARY
mov eax, ebp
sar eax, 0x1f
mov eax, dword [esp + 0x58]
push ebx
push eax
push str._d__d:__s__sz_d__nblive_d__nilive_d__tbytes__d__d___tinsts__d__d__n
call fcn.100014f0
mov esi, dword [esp + 0x44]
add esp, 0x34
jmp 0x10004945
cmp edi, 0x18
je 0x100043c7
push 0x3ee
push str.hprof_check.c
push str.size244_int_sizeof_HprofId_
push 0
push 1
call fcn.10005d70
add esp, 0x14
movzx ecx, byte [esi]
mov dl, byte [esi + 1]
mov al, byte [esi + 2]
mov byte [esp + 0x54], cl
movzx ecx, byte [esi + 3]
mov byte [esp + 0x55], dl
mov byte [esp + 0x56], al
mov byte [esp + 0x57], cl
mov edx, dword [esp + 0x54]
push edx
call fcn.1000ef90
mov ecx, dword [0x1001e7f8]
add esp, 4
mov dword [esp + 0x10], eax
cmp eax, dword [ecx + 0x154]
jb 0x1000440b
cmp eax, dword [ecx + 0x170]
jb 0x10004426
push 0x3f0
push str.hprof_check.c
push str._thread_serial_num____gdata__thread_serial_number_start___thread_serial_num____gdata__thread_serial_number_counter
push 0
push 1
call fcn.10005d70
add esp, 0x14
movzx ecx, byte [esi + 4]
movzx edx, byte [esi + 5]
movzx eax, byte [esi + 6]
mov byte [esp + 0x5c], cl
movzx ecx, byte [esi + 7]
mov byte [esp + 0x5d], dl
mov byte [esp + 0x5e], al
mov byte [esp + 0x5f], cl
mov edx, dword [esp + 0x5c]
push edx
call fcn.1000ef90
mov dword [esp + 0x24], eax
movzx eax, byte [esi + 8]
movzx ecx, byte [esi + 9]
movzx edx, byte [esi + 0xa]
mov byte [esp + 0x68], al
movzx eax, byte [esi + 0xb]
mov byte [esp + 0x69], cl
mov byte [esp + 0x6a], dl
mov byte [esp + 0x6b], al
mov ecx, dword [esp + 0x68]
push ecx
call fcn.1000ef90
mov ecx, dword [0x1001e7f8]
add esp, 8
mov dword [esp + 0x14], eax
cmp eax, dword [ecx + 0x158]
jb 0x1000449d
mov edx, eax
cmp edx, dword [ecx + 0x174]
jb 0x100044b8
push 0x3f3
push str.hprof_check.c
push str._trace_serial_num____gdata__trace_serial_number_start___trace_serial_num____gdata__trace_serial_number_counter
push 0
push 1
call fcn.10005d70
add esp, 0x14
movzx eax, byte [esi + 0xc]
movzx ecx, byte [esi + 0xd]
movzx edx, byte [esi + 0xe]
mov byte [esp + 0x6c], al
movzx eax, byte [esi + 0xf]
mov byte [esp + 0x6d], cl
mov byte [esp + 0x6e], dl
mov byte [esp + 0x6f], al
mov ecx, dword [esp + 0x6c]
push ecx
call fcn.1000ef90
movzx edx, byte [esi + 0x10]
movzx ecx, byte [esi + 0x12]
mov dword [esp + 0x20], eax
movzx eax, byte [esi + 0x11]
mov byte [esp + 0x78], dl
movzx edx, byte [esi + 0x13]
mov byte [esp + 0x79], al
mov byte [esp + 0x7a], cl
mov byte [esp + 0x7b], dl
mov eax, dword [esp + 0x78]
push eax
call fcn.1000ef90
movzx ecx, byte [esi + 0x14]
movzx edx, byte [esi + 0x15]
mov byte [esp + 0x84], cl
movzx ecx, byte [esi + 0x17]
mov dword [esp + 0x20], eax
movzx eax, byte [esi + 0x16]
mov byte [esp + 0x85], dl
mov byte [esp + 0x86], al
mov byte [esp + 0x87], cl
mov edx, dword [esp + 0x84]
push edx
add esi, 0x18
call fcn.1000ef90
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x20]
push eax
push ecx
push edx
push edi
push str.HPROF_START_THREAD
push ebx
push ebp
push str._d__d:__s__sz_d__thread_serial_num_u__id0x_x__trace_serial_num_u_
call fcn.100014f0
mov eax, dword [esp + 0x4c]
push eax
mov eax, dword [esp + 0x58]
mov edi, 0x10019a4c
call fcn.10001780
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x4c]
push ecx
mov ecx, dword [esp + 0x48]
push edx
push eax
push ecx
push str._trace_serial_num_u__nm0x_x__gr0x_x__gn0x_x_n
call fcn.100014f0
add esp, 0x44
jmp 0x10004945
cmp edi, 4
je 0x100045ce
push 0x401
push str.hprof_check.c
push str.size4
push 0
push 1
call fcn.10005d70
add esp, 0x14
movzx edx, byte [esi]
mov al, byte [esi + 1]
mov cl, byte [esi + 2]
mov byte [esp + 0x84], dl
movzx edx, byte [esi + 3]
mov byte [esp + 0x85], al
mov byte [esp + 0x86], cl
mov byte [esp + 0x87], dl
mov eax, dword [esp + 0x84]
push eax
add esi, 4
call fcn.1000ef90
mov ecx, dword [0x1001e7f8]
add esp, 4
mov dword [esp + 0x10], eax
cmp eax, dword [ecx + 0x154]
jb 0x10004626
mov edx, eax
cmp edx, dword [ecx + 0x170]
jb 0x10004641
push 0x403
push str.hprof_check.c
push str._thread_serial_num____gdata__thread_serial_number_start___thread_serial_num____gdata__thread_serial_number_counter
push 0
push 1
call fcn.10005d70
add esp, 0x14
mov eax, dword [esp + 0x10]
push eax
push edi
push str.HPROF_END_THREAD
push ebx
push ebp
push str._d__d:__s__sz_d__thread_serial_num_u_n
call fcn.100014f0
add esp, 0x18
jmp 0x10004945
push edi
push str.HPROF_HEAP_DUMP
push ebx
push ebp
push str._d__d:_BEGIN:__s__sz_d_n
call fcn.100014f0
mov ecx, dword [esp + 0x3c]
push edi
push esi
push ecx
call fcn.10001820
push eax
push edi
push str.HPROF_HEAP_DUMP
push ebx
push ebp
push str._d__d:_END:__s__sz_d__nheap_recs_d_n
call fcn.100014f0
add esp, 0x38
jmp 0x10004943
push edi
push str.HPROF_HEAP_DUMP_SEGMENT
push ebx
push ebp
push str._d__d:_BEGIN_SEGMENT:__s__sz_d_n
call fcn.100014f0
mov edx, dword [esp + 0x3c]
push edi
push esi
push edx
call fcn.10001820
push eax
push edi
push str.HPROF_HEAP_DUMP_SEGMENT
push ebx
push ebp
push str._d__d:_END_SEGMENT:__s__sz_d__nheap_recs_d_n
call fcn.100014f0
add esp, 0x38
jmp 0x10004943
push edi
push str.HPROF_HEAP_DUMP_END
push ebx
push ebp
push str._d__d:_SEGMENT_END:__s__sz_d_n
call fcn.100014f0
add esp, 0x14
jmp 0x10004945
cmp edi, 8
jae 0x1000470c
push 0x41c
push str.hprof_check.c
push str.size_24
push 0
push 1
call fcn.10005d70
add esp, 0x14
movzx eax, byte [esi]
movzx ecx, byte [esi + 1]
movzx edx, byte [esi + 2]
mov byte [esp + 0x8c], al
movzx eax, byte [esi + 3]
mov byte [esp + 0x8d], cl
mov byte [esp + 0x8e], dl
mov byte [esp + 0x8f], al
mov ecx, dword [esp + 0x8c]
push ecx
call fcn.1000ef90
movzx edx, byte [esi + 4]
movzx ecx, byte [esi + 6]
mov dword [esp + 0x30], eax
movzx eax, byte [esi + 5]
mov byte [esp + 0x98], dl
movzx edx, byte [esi + 7]
mov byte [esp + 0x99], al
mov byte [esp + 0x9a], cl
mov byte [esp + 0x9b], dl
mov eax, dword [esp + 0x98]
push eax
add esi, 8
call fcn.1000ef90
mov ecx, dword [esp + 0x34]
push eax
push ecx
push edi
push str.HPROF_CPU_SAMPLES
push ebx
push ebp
push str._d__d:__s__sz_d__total_samples_d__trace_count_d_n
mov dword [esp + 0x3c], eax
call fcn.100014f0
add esp, 0x24
cmp dword [esp + 0x18], 0
jle 0x10004945
mov ebp, dword [esp + 0x18]
movzx edx, byte [esi]
movzx eax, byte [esi + 1]
movzx ecx, byte [esi + 2]
mov byte [esp + 0x9c], dl
movzx edx, byte [esi + 3]
mov byte [esp + 0x9d], al
mov byte [esp + 0x9e], cl
mov byte [esp + 0x9f], dl
mov eax, dword [esp + 0x9c]
push eax
call fcn.1000ef90
movzx ecx, byte [esi + 4]
movzx edx, byte [esi + 5]
mov byte [esp + 0xa8], cl
movzx ecx, byte [esi + 7]
mov ebx, eax
movzx eax, byte [esi + 6]
mov byte [esp + 0xa9], dl
mov byte [esp + 0xaa], al
mov byte [esp + 0xab], cl
mov edx, dword [esp + 0xa8]
push edx
add esi, 8
call fcn.1000ef90
mov edi, eax
mov eax, dword [0x1001e7f8]
add esp, 8
cmp edi, dword [eax + 0x158]
jb 0x10004842
cmp edi, dword [eax + 0x174]
jb 0x1000485d
push 0x426
push str.hprof_check.c
push str._trace_serial_num____gdata__trace_serial_number_start___trace_serial_num____gdata__trace_serial_number_counter
push 0
push 1
call fcn.10005d70
add esp, 0x14
push ebx
push edi
push str._t__d:_samples_d__trace_serial_num_u_n
call fcn.100014f0
add esp, 0xc
dec ebp
jne 0x100047b2
jmp 0x10004945
cmp edi, 6
je 0x10004898
push 0x42c
push str.hprof_check.c
push str.size42
push 0
push 1
call fcn.10005d70
add esp, 0x14
movzx eax, byte [esi]
movzx edx, byte [esi + 2]
mov cl, byte [esi + 1]
mov byte [esp + 0xac], al
movzx eax, byte [esi + 3]
mov byte [esp + 0xad], cl
mov byte [esp + 0xae], dl
mov byte [esp + 0xaf], al
mov ecx, dword [esp + 0xac]
push ecx
call fcn.1000ef90
movzx edx, byte [esi + 4]
mov dword [esp + 0x1c], eax
movzx eax, byte [esi + 5]
mov byte [esp + 0xf4], dl
mov byte [esp + 0xf5], al
mov ecx, dword [esp + 0xf4]
push ecx
add esi, 6
call fcn.1000ef80
mov edx, dword [esp + 0x20]
push eax
push edx
push edi
push str.HPROF_CONTROL_SETTINGS
push ebx
push ebp
push str._d__d:__s__sz_d__flags0x_x__depth_d_n
call fcn.100014f0
add esp, 0x24
jmp 0x10004945
push edi
push str.UNKNOWN
push ebx
push ebp
push str._d__d:__s__sz_d_n
call fcn.100014f0
push 0x436
push str.hprof_check.c
push str.unknown_record_type
push 0
push 1
call fcn.10005d70
add esp, 0x28
add esi, edi
mov edi, dword [esp + 0xec]
cmp esi, edi
jbe 0x1000496d
push 0x43a
push str.hprof_check.c
push str.p__pstartnbytes_
push 0
push 1
call fcn.10005d70
add esp, 0x14
cmp esi, edi
jb 0x100037f0
pop ebp
mov eax, dword [0x1001e7f8]
mov ecx, dword [eax + 0x88]
test ecx, ecx
js 0x100049cf
mov ebx, dword [eax + 0x144]
test ebx, ebx
je 0x100049cf
mov eax, dword [eax + 0x140]
push ebx
push eax
push ecx
call sub.msvcr100.dll__write
mov edi, eax
add esp, 0xc
test edi, edi
js 0x100049a8
cmp edi, ebx
je 0x100049bf
call dword [sym.imp.msvcr100.dll__errno]
mov eax, dword [eax]
push eax
push edi
mov ebx, str.write
call fcn.10001200
add esp, 8
mov ecx, dword [0x1001e7f8]
mov dword [ecx + 0x144], 0
cmp esi, dword [esp + 0xe8]
pop edi
pop esi
pop ebx
je 0x100049f6
push 0x43d
push str.hprof_check.c
push str.p_pstartnbytes_
push 0
push 1
call fcn.10005d70
add esp, 0x14
mov edx, dword [esp + 0x18]
push 0
push 0x10003770
push edx
call fcn.100127a0
mov eax, dword [esp + 0x2c]
add esp, 0xfc
ret