Function at 0x426990
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
push edi
mov edi, edx
push esi
mov esi, edi
mov edi, ecx
push ebx
sub esp, 0xbc
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xd0]
mov edx, dword [esp + 0xd4]
mov dword [esp + 0x40], eax
lea eax, [ecx + 0x30]
mov dword [esp + 0x44], edx
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0xd8]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x4272df
mov eax, dword [esp + 0xd8]
call sym._read_uleb128
mov ecx, edx
or ecx, eax
je 0x4272df
mov ecx, dword [esp + 0xe4]
mov ebx, dword [esp + 0xe0]
mov dword [esp + 4], edx
mov dword [esp], eax
mov edx, dword [esp + 0x4c]
mov dword [esp + 0xc], ecx
mov dword [esp + 8], ebx
mov eax, dword [edi + 0x2c]
call sym._lookup_abbrev.isra.3
mov ebp, eax
test eax, eax
je 0x426f10
mov eax, dword [eax + 8]
cmp eax, 0x2e
je 0x426fc5
cmp eax, 3
je 0x426fc5
cmp eax, 0x1d
je 0x4270a2
mov eax, dword [esp + 0xe8]
mov dword [esp + 0x34], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x6c], eax
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x58], 0
mov dword [esp + 0x68], 0
test eax, eax
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0
je 0x426bd4
lea eax, [esp + 0x90]
mov dword [esp + 0x28], 0
mov dword [esp + 0x30], eax
jmp 0x426b22
mov ecx, dword [esp + 0x34]
test ecx, ecx
je 0x426b10
add ebx, dword [ebp + 0x14]
mov eax, dword [ebx]
cmp eax, 0x47
je 0x426e39
jbe 0x426dc0
cmp eax, 0x59
je 0x426ea0
ja 0x426d90
cmp eax, 0x55
je 0x426ec1
cmp eax, 0x58
jne 0x426b10
cmp dword [esp + 0x90], 1
je 0x427070
lea esi, [esi]
add dword [esp + 0x28], 1
mov eax, dword [esp + 0x28]
cmp dword [ebp + 0x10], eax
jbe 0x426bd4
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x30]
mov ecx, dword [edi + 0x10]
lea ebx, [eax*8]
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + ebx + 4]
mov dword [esp + 0x10], edx
mov edx, dword [esi + 0x2c]
mov dword [esp + 0xc], edx
mov edx, dword [esi + 0x28]
mov dword [esp + 8], edx
mov edx, dword [edi + 0x14]
mov dword [esp + 4], edx
mov edx, dword [edi + 0xc]
mov dword [esp], edx
mov edx, dword [esp + 0xd8]
call sym._read_attribute.part.13
test eax, eax
je 0x426f10
cmp dword [ebp + 8], 0x11
jne 0x426ac5
mov eax, dword [ebp + 0x14]
cmp dword [eax + ebx], 0x11
jne 0x426ac5
mov eax, dword [esp + 0x90]
test eax, eax
jne 0x426b10
mov eax, dword [esp + 0x98]
mov edx, dword [esp + 0x9c]
mov ebx, dword [esp + 0x34]
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], edx
test ebx, ebx
je 0x426b10
mov dword [esp + 0x60], eax
add dword [esp + 0x28], 1
mov eax, dword [esp + 0x28]
mov dword [esp + 0x64], edx
mov dword [esp + 0x5c], 1
cmp dword [ebp + 0x10], eax
ja 0x426b22
mov eax, dword [esp + 0x34]
test eax, eax
je 0x426f4f
mov eax, dword [esp + 0x38]
mov eax, dword [eax]
test eax, eax
je 0x426f1d
mov eax, dword [esp + 0x58]
test eax, eax
jne 0x427129
mov ecx, dword [esp + 0x5c]
test dword [esp + 0x48], ecx
je 0x426f1d
mov ebx, dword [esp + 0x74]
test ebx, ebx
je 0x426c20
mov eax, dword [esp + 0x60]
mov edx, dword [esp + 0x64]
add dword [esp + 0x50], eax
adc dword [esp + 0x54], edx
mov eax, dword [esp + 0x6c]
mov edx, dword [esi + 4]
mov ecx, dword [esp + 0x50]
mov ebx, dword [esp + 0x54]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0xe0]
mov dword [esp + 0xc], ebx
mov ebx, dword [esp + 0x64]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x3c]
mov dword [esp], ecx
mov ecx, dword [esp + 0x38]
mov dword [esp + 4], ebx
call sym._add_function_range.isra.6
test eax, eax
je 0x426f10
mov ecx, dword [ebp + 0xc]
test ecx, ecx
je 0x4269c1
lea eax, [esp + 0x90]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x44]
mov ecx, edi
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0xe8]
mov dword [esp + 4], edx
mov edx, esi
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0xe0]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xdc]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xd8]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x40]
mov dword [esp], eax
mov eax, dword [esp + 0x3c]
call sym._read_function_entry
test eax, eax
je 0x426f10
mov edx, dword [esp + 0x9c]
test edx, edx
je 0x4269c1
mov eax, dword [esp + 0xe4]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xe0]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
call sym._backtrace_vector_release
test eax, eax
je 0x426f10
mov ebx, dword [esp + 0x90]
mov eax, dword [esp + 0x9c]
mov dword [esp + 0xc], sym._function_addrs_compare
mov dword [esp + 8], 0x18
mov dword [esp + 4], eax
mov dword [esp], ebx
call sym._backtrace_qsort
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x9c]
mov dword [ecx + 0xc], ebx
mov dword [ecx + 0x10], eax
jmp 0x4269c1
cmp eax, 0x6e
je 0x426da0
cmp eax, 0x2007
jne 0x426b10
cmp dword [esp + 0x90], 3
jne 0x426b10
mov eax, dword [esp + 0x98]
mov ebx, dword [esp + 0x38]
mov dword [ebx], eax
jmp 0x426b10
cmp eax, 0x11
je 0x42733a
jbe 0x426e02
cmp eax, 0x12
jne 0x426e30
mov eax, dword [esp + 0x90]
test eax, eax
jne 0x427040
mov eax, dword [esp + 0x98]
mov edx, dword [esp + 0x9c]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x54], edx
mov dword [esp + 0x48], eax
jmp 0x426b10
cmp eax, 3
jne 0x426b10
cmp dword [esp + 0x90], 3
jne 0x426b10
mov eax, dword [esp + 0x38]
mov edx, dword [eax]
test edx, edx
jne 0x426b10
jmp 0x426dae
cmp eax, 0x31
jne 0x426b10
mov eax, dword [ebx + 4]
sub eax, 0x10
and eax, 0xffffffef
je 0x426b10
mov eax, dword [esp + 0x90]
cmp eax, 1
je 0x426e5d
cmp eax, 4
jne 0x426b10
mov eax, dword [esp + 0xe4]
mov edx, dword [esp + 0x9c]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xe0]
mov dword [esp + 4], edx
mov edx, edi
mov dword [esp + 8], eax
mov eax, dword [esp + 0x98]
mov dword [esp], eax
mov eax, esi
call sym._read_referenced_name
test eax, eax
jne 0x426db5
jmp 0x426b10
cmp dword [esp + 0x90], 1
jne 0x426b10
mov eax, dword [esp + 0x98]
mov ebx, dword [esp + 0x38]
mov dword [ebx + 8], eax
jmp 0x426b10
mov eax, dword [esp + 0x90]
cmp eax, 1
je 0x426ed6
cmp eax, 6
jne 0x426b10
mov eax, dword [esp + 0x98]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x58], eax
jmp 0x426b10
mov eax, dword [esp + 0xd8]
mov edx, str.invalid_file_number_in_DW_AT_call_file_attribute
call sym._dwarf_buf_error
lea esi, [esi]
xor eax, eax
add esp, 0xbc
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0xe4]
mov dword [esp + 8], 0x14
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xe0]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
call sym._backtrace_free
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x4269c1
mov eax, dword [esp + 0xec]
mov edx, dword [esp + 0x44]
mov ecx, edi
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0xe8]
mov dword [esp + 4], edx
mov edx, esi
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0xe0]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xdc]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xd8]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x40]
mov dword [esp], eax
mov eax, dword [esp + 0x3c]
call sym._read_function_entry
test eax, eax
jne 0x4269c1
jmp 0x426f10
cmp eax, 0x1d
mov eax, dword [esp + 0xec]
cmovne eax, dword [esp + 0xe8]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 4], 0x14
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xe0]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
call sym._backtrace_alloc
mov dword [esp + 0x38], eax
test eax, eax
je 0x426f10
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0
mov dword [eax + 0x10], 0
mov dword [esp + 0x34], 1
jmp 0x426a55
cmp eax, 1
jne 0x426b10
mov eax, dword [esp + 0x98]
mov edx, dword [esp + 0x9c]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x54], edx
mov dword [esp + 0x74], eax
mov dword [esp + 0x48], eax
jmp 0x426b10
mov eax, dword [esp + 0x98]
mov edx, dword [esp + 0x9c]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x7c], edx
mov edx, dword [esp + 0x7c]
or edx, eax
jne 0x4270b2
mov eax, dword [esp + 0x38]
mov dword [eax + 4], 0x46f0de
jmp 0x426b10
mov eax, dword [esp + 0xec]
mov dword [esp + 0x6c], eax
jmp 0x426fdb
mov eax, dword [esp + 0x78]
mov edx, dword [esp + 0x7c]
add eax, 0xffffffff
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0xdc]
adc edx, 0xffffffff
mov dword [esp + 0x84], edx
xor edx, edx
mov eax, dword [eax + 0x24]
mov dword [esp + 0x8c], edx
mov edx, dword [esp + 0x84]
mov ebx, eax
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x80]
cmp eax, ebx
sbb edx, dword [esp + 0x8c]
jae 0x426ef9
mov ebx, dword [esp + 0xdc]
mov eax, dword [esp + 0x78]
mov edx, dword [ebx + 0x28]
add eax, 0x3fffffff
mov ebx, dword [esp + 0x38]
mov eax, dword [edx + eax*4]
mov dword [ebx + 4], eax
jmp 0x426b10
mov ebx, dword [esp + 0x70]
xor edx, edx
mov ecx, dword [esi + 0x24]
cmp dword [esp + 0x68], ecx
sbb ebx, edx
jae 0x4272e9
mov ebx, dword [esp + 0x68]
mov eax, dword [esi + 0x20]
mov dword [esp + 0x90], str..debug_ranges
mov edx, dword [esp + 0x44]
mov dword [esp + 0x50], ebp
mov dword [esp + 0x94], eax
add eax, ebx
sub ecx, ebx
mov ebx, edi
mov dword [esp + 0x98], eax
mov eax, dword [esi + 0x30]
mov dword [esp + 0x9c], ecx
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0xe0]
mov dword [esp + 0xac], 0
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x2c], edx
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x48], esi
mov dword [esp + 0x28], eax
lea eax, [esp + 0x90]
mov dword [esp + 0x30], eax
jmp 0x4271ee
cmp ecx, 8
jne 0x427241
mov ecx, esi
and ecx, edi
cmp ecx, 0xffffffff
sete cl
movzx ecx, cl
test ecx, ecx
je 0x427241
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edx
mov eax, dword [esp + 0xac]
test eax, eax
jne 0x426f10
mov ebp, dword [esp + 0x30]
mov edx, dword [ebx + 0x14]
mov eax, ebp
call sym._read_address
mov edi, edx
mov edx, dword [ebx + 0x14]
mov esi, eax
mov eax, ebp
mov ebp, edi
call sym._read_address
mov ecx, esi
or ecx, eax
or ebp, edx
or ebp, ecx
je 0x427311
mov ecx, dword [ebx + 0x14]
cmp ecx, 2
je 0x4272ca
jle 0x4272b0
cmp ecx, 4
jne 0x4271c1
mov ecx, esi
not ecx
or ecx, edi
sete cl
movzx ecx, cl
test ecx, ecx
jne 0x4271d7
mov ebp, dword [esp + 0x6c]
mov ecx, dword [esp + 0x48]
add eax, dword [esp + 0x28]
adc edx, dword [esp + 0x2c]
mov ecx, dword [ecx + 4]
add esi, dword [esp + 0x28]
mov dword [esp + 0x18], ebp
mov ebp, dword [esp + 0xe4]
adc edi, dword [esp + 0x2c]
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x14], ebp
mov ebp, dword [esp + 0xe0]
mov dword [esp], esi
mov dword [esp + 0x10], ebp
mov dword [esp + 4], edi
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x34]
call sym._add_function_range.isra.6
test eax, eax
jne 0x4271df
jmp 0x426f10
cmp ecx, 1
jne 0x427241
mov ebp, esi
xor ebp, 0xff
or ebp, edi
sete cl
movzx ecx, cl
jmp 0x4271d3
mov ebp, esi
xor ebp, 0xffff
or ebp, edi
sete cl
movzx ecx, cl
jmp 0x4271d3
mov eax, 1
jmp 0x426f12
mov eax, dword [esp + 0xe4]
mov dword [esp + 8], 0
mov dword [esp + 4], str.function_ranges_offset_out_of_range
mov dword [esp], eax
call dword [esp + 0xe0]
xor eax, eax
jmp 0x426f12
mov eax, dword [esp + 0xac]
mov ebp, dword [esp + 0x50]
mov edi, ebx
mov esi, dword [esp + 0x48]
test eax, eax
jne 0x426f10
mov ebp, dword [ebp + 0xc]
test ebp, ebp
jne 0x426c8b
jmp 0x4269c1
cmp dword [esp + 0x90], 0
jne 0x426b10
mov eax, dword [esp + 0x98]
mov edx, dword [esp + 0x9c]
jmp 0x426bb2