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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x140
mov eax, dword [ebp + 0xc]
mov dword [esp + 8], ecx
mov eax, dword [eax + 0x28]
mov dword [esp + 0xf0], eax
shr eax, 0x10
cmp ax, 5
mov dword [esp + 0xcc], eax
mov eax, dword [ebp + 0x10]
setae byte [esp + 0x27]
mov ecx, dword [eax + 0x1c]
lea eax, [ecx + 0x20]
mov dword [esp + 0xa4], ecx
lea ecx, [ecx + 0x18]
cmovae ecx, eax
call 0x4297fe
pop eax
mov dword [esp + 0x138], ecx
mov ecx, dword [edx + 8]
mov dword [esp + 0xdc], eax
cmp ecx, dword [ebp + 8]
jle 0x42a478
mov ebx, dword [esp + 0xf0]
mov dword [esp + 0x78], ecx
mov esi, edx
mov dword [esp + 0xc], esi
mov eax, ebx
and eax, 0xff00
mov dword [esp + 0x120], eax
mov eax, ebx
shl eax, 0x10
mov dword [esp + 0x11c], eax
mov eax, dword [edx + 0xc]
mov ecx, dword [eax + 0x20]
add ecx, dword [edx]
xor edx, edx
cmp byte [eax + 0x29], 8
sete dl
lea edi, [ecx + edx*8]
mov ecx, dword [eax + 0x14]
mov edx, dword [ebp + 0x1c]
add ecx, dword [eax + 0x10]
mov eax, dword [ebp + 0xc]
sub edi, ecx
movzx ecx, byte [eax + 0x29]
add edi, 4
mov byte [esp + 0x13], cl
mov ecx, dword [esp + 0xa4]
add ecx, 8
mov dword [esp + 0xec], ecx
mov ecx, dword [eax + 0x108]
mov dword [esp + 0xe8], ecx
mov ecx, dword [eax + 0x114]
mov dword [esp + 0x94], ecx
movzx ecx, bh
mov ebx, dword [esp + 0x78]
mov dword [esp + 0x124], ecx
mov ecx, dword [eax + 0x10c]
mov dword [esp + 0x130], ecx
mov ecx, dword [eax + 0x54]
mov eax, dword [eax + 0x50]
mov dword [esp + 0x128], eax
lea eax, [edx + 1]
mov dword [esp + 0x12c], ecx
mov dword [esp + 0x134], eax
jmp 0x429982
mov eax, dword [ebx + 4]
mov edi, dword [esp + 0x6c]
lea ecx, [edx + edx*2]
inc edx
mov dword [eax + ecx*8 + 4], edi
mov edi, dword [esp + 0x70]
mov dword [eax + ecx*8], edi
mov edi, dword [esp + 0xe0]
mov dword [eax + ecx*8 + 0xc], edi
mov edi, dword [esp + 0xe4]
mov dword [eax + ecx*8 + 8], edi
mov edi, dword [ebp + 0x1c]
mov dword [eax + ecx*8 + 0x10], edi
mov dword [eax + ecx*8 + 0x14], esi
mov dword [ebx + 8], edx
mov esi, dword [esp + 0xc]
lea ecx, [esp + 0xa8]
mov edx, esi
push dword [esp + 0x134]
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [esp + 0x8c]
call sym.addr2line::function::Function_LT_R_GT_::parse_children::hb52a7766f16e77eb
add esp, 0x18
mov ebx, dword [esp + 8]
movzx eax, byte [esp + 0xa8]
cmp al, 0x4b
jne 0x42a584
mov eax, dword [esi + 0xc]
xor edx, edx
mov ebx, dword [esi + 8]
cmp byte [eax + 0x29], 8
mov ecx, dword [eax + 0x20]
sete dl
add ecx, dword [esi]
lea edi, [ecx + edx*8]
mov edx, dword [eax + 0x14]
add edx, dword [eax + 0x10]
sub edi, edx
add edi, 4
cmp ebx, dword [ebp + 8]
jle 0x42a478
lea ecx, [esp + 0x28]
mov edx, esi
call sym.gimli::read::unit::EntriesRaw_LT_R_GT_::read_abbreviation::hc9e81124febb1759
movzx eax, byte [esp + 0x28]
cmp al, 0x4b
jne 0x42a4c7
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x429957
movzx ecx, word [eax + 0x60]
mov dword [esp + 0x78], ebx
cmp ecx, 0x1d
je 0x429a60
add eax, 8
cmp ecx, 0x2e
jne 0x429b00
push eax
call sym.__LT_gimli..read..abbrev..Attributes_u20_as_u20_core..ops..deref..Deref_GT_::deref::h4b3e4243790e46b3
add esp, 4
mov esi, dword [esp + 0xc]
mov ebx, edx
lea ecx, [esp + 0x28]
mov edi, dword [esi + 0xc]
mov edx, esi
push ebx
push eax
push dword [edi + 0x28]
call sym.gimli::read::unit::skip_attributes::hd7f16ac6b4606cc3
add esp, 0xc
movzx eax, byte [esp + 0x28]
cmp al, 0x4b
jne 0x42a484
mov edi, dword [esp + 0x78]
cmp dword [esi + 8], edi
jle 0x429957
lea ecx, [esp + 0x28]
mov edx, esi
call sym.gimli::read::unit::EntriesRaw_LT_R_GT_::read_abbreviation::hc9e81124febb1759
movzx eax, byte [esp + 0x28]
cmp al, 0x4b
jne 0x42a484
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x4299f5
add eax, 8
push eax
call sym.__LT_gimli..read..abbrev..Attributes_u20_as_u20_core..ops..deref..Deref_GT_::deref::h4b3e4243790e46b3
add esp, 4
mov ebx, esi
mov esi, edx
lea ecx, [esp + 0x28]
mov edi, dword [ebx + 0xc]
mov edx, ebx
push esi
push eax
push dword [edi + 0x28]
call sym.gimli::read::unit::skip_attributes::hd7f16ac6b4606cc3
add esp, 0xc
movzx eax, byte [esp + 0x28]
cmp al, 0x4b
jne 0x42a484
mov esi, dword [esp + 0xc]
jmp 0x4299f1
add eax, 8
push eax
call sym.__LT_gimli..read..abbrev..Attributes_u20_as_u20_core..ops..deref..Deref_GT_::deref::h4b3e4243790e46b3
add esp, 4
test edx, edx
je 0x42a003
mov ebx, eax
shl edx, 4
mov dword [esp + 0x1c], 0
mov dword [esp + 0xd4], 0
mov dword [esp + 0xd0], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0xa0], 0
mov dword [esp + 0x9c], 0
mov dword [esp + 0xc8], 0
mov dword [esp + 0xc4], 0
mov dword [esp + 0xc0], 0
mov dword [esp + 0xbc], 0
mov dword [esp + 0x74], 0
jmp 0x429bb3
push eax
call sym.__LT_gimli..read..abbrev..Attributes_u20_as_u20_core..ops..deref..Deref_GT_::deref::h4b3e4243790e46b3
add esp, 4
mov esi, edx
mov edx, dword [esp + 0xc]
lea ecx, [esp + 0x28]
mov edi, dword [edx + 0xc]
push esi
push eax
push dword [edi + 0x28]
call sym.gimli::read::unit::skip_attributes::hd7f16ac6b4606cc3
add esp, 0xc
movzx eax, byte [esp + 0x28]
cmp al, 0x4b
jne 0x42a4f8
mov esi, dword [esp + 0xc]
jmp 0x429957
mov edx, dword [esp + 0x100]
add ebx, 0x10
add edx, 0xfffffff0
je 0x42a07b
mov dword [esp + 0x100], edx
mov edx, dword [esp + 0xc]
movq xmm0, qword [ebx]
movq xmm1, qword [ebx + 8]
lea esi, [esp + 0x50]
lea ecx, [esp + 0x28]
mov eax, dword [edx + 0xc]
movq qword [esp + 0x88], xmm1
movq qword [esp + 0x80], xmm0
mov eax, dword [eax + 0x28]
movq qword [esp + 0x58], xmm1
movq qword [esp + 0x50], xmm0
push esi
push eax
call sym.gimli::read::unit::parse_attribute::he9b211fd0d625f29
add esp, 8
mov eax, dword [esp + 0x28]
mov ecx, eax
xor ecx, 0x2e
or ecx, dword [esp + 0x2c]
je 0x42a242
movzx ecx, word [esp + 0x38]
lea edx, [ecx - 3]
cmp edx, 0x56
ja 0x429ca0
mov ecx, dword [edx*4 + 0x42a5a8]
add ecx, dword [esp + 0xdc]
jmp ecx
cmp ecx, 0x6e
je 0x429cb1
cmp ecx, 0x2007
jne 0x429ba0
lea esi, [esp + 0x50]
lea edx, [esp + 0x28]
mov ecx, esi
call sym.gimli::read::unit::Attribute_LT_R_GT_::value::he37de9fc319b2255
movzx eax, byte [esp + 0x13]
mov edx, dword [esp + 0xec]
lea ecx, [esp + 0x80]
push esi
push dword [esp + 0xec]
push eax
call sym.gimli::read::dwarf::Dwarf_LT_R_GT_::attr_string::h6702afb25dad1978
add esp, 0xc
cmp byte [esp + 0x80], 0x4b
jne 0x429ba0
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x84]
mov dword [esp + 0xd8], eax
mov dword [esp + 0x1c], ecx
jmp 0x429ba0
mov dword [esp + 0x74], 0
mov dword [esp + 0xc0], 0
mov dword [esp + 0xbc], 0
mov dword [esp + 0xc8], 0
mov dword [esp + 0xc4], 0
mov dword [esp + 0xa0], 0
mov dword [esp + 0x9c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0xd4], 0
mov dword [esp + 0xd0], 0
mov dword [esp + 0x1c], 0
mov ecx, dword [ebp + 0x14]
mov esi, dword [ecx + 8]
cmp esi, dword [ecx]
mov eax, esi
jne 0x42a094
mov edx, esi
call sym.alloc::raw_vec::RawVec_LT_T_C_A_GT_::reserve_for_push::h1fa022fcb7f7691b
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 8]
mov edx, dword [ebp + 0x14]
mov ebx, dword [esp + 0x1c]
mov ecx, eax
inc eax
shl ecx, 5
cmp dword [esp + 0x74], 0
mov edx, dword [edx + 4]
mov dword [edx + ecx], ebx
mov ebx, dword [esp + 0xd8]
mov dword [edx + ecx + 4], ebx
mov ebx, dword [esp + 0xd0]
mov dword [edx + ecx + 0xc], ebx
mov ebx, dword [esp + 0xd4]
mov dword [edx + ecx + 8], ebx
mov dword [edx + ecx + 0x10], edi
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov dword [edx + ecx + 0x14], edi
mov dword [edx + ecx + 0x18], ebx
mov edx, dword [ebp + 0x14]
mov ebx, dword [ebp + 0x18]
mov dword [edx + 8], eax
je 0x42a26e
mov eax, dword [esp + 0x138]
mov edx, dword [esp + 0x98]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
sub eax, edx
jb 0x42a519
mov dword [esp + 0x98], edx
mov edi, dword [esp + 0xa4]
mov edx, esi
add ecx, dword [esp + 0x98]
mov esi, dword [edi + 0x30]
mov edi, dword [edi + 0x34]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0xf0]
mov ecx, dword [esp + 0x128]
mov dword [esp + 0x100], esi
mov esi, edx
mov edx, dword [esp + 0x12c]
mov dword [esp + 0x30], eax
movzx eax, byte [esp + 0x27]
mov byte [esp + 0x34], al
mov byte [esp + 0x37], 0
mov word [esp + 0x35], 0
mov dword [esp + 0x3c], edx
mov dword [esp + 0x38], ecx
mov edx, dword [esp + 0x100]
mov ecx, dword [esp + 0x130]
mov dword [esp + 0x40], edx
mov dword [esp + 0x44], edi
mov dword [esp + 0x48], ecx
mov dword [esp + 0x4c], 0
jmp 0x42a1ba
mov eax, dword [ebx + 4]
mov edi, dword [ebp + 0x1c]
lea ecx, [edx + edx*2]
inc edx
movdqu xmmword [eax + ecx*8], xmm1
mov dword [eax + ecx*8 + 0x10], edi
mov dword [eax + ecx*8 + 0x14], esi
mov dword [ebx + 8], edx
lea ecx, [esp + 0x50]
lea edx, [esp + 0x28]
call sym.gimli::read::rnglists::RngListIter_LT_R_GT_::next::hbbdab33214f70555
mov eax, dword [esp + 0x50]
movdqu xmm1, xmmword [esp + 0x58]
mov ecx, eax
and cl, 3
cmp cl, 1
jne 0x42a228
pshufd xmm2, xmm1, 0xee
pshufd xmm0, xmm1, 0x55
pshufd xmm3, xmm1, 0xff
movd ecx, xmm1
movd edi, xmm2
movd eax, xmm0
movd edx, xmm3
cmp ecx, edi
sbb eax, edx
jae 0x42a1ba
mov edx, dword [ebx + 8]
cmp edx, dword [ebx]
jne 0x42a1a0
mov ecx, ebx
movdqa xmmword [esp + 0x100], xmm1
call sym.alloc::raw_vec::RawVec_LT_T_C_A_GT_::reserve_for_push::h81c9b2f78d9bbf2c
movdqa xmm1, xmmword [esp + 0x100]
mov edx, dword [ebx + 8]
jmp 0x42a1a0
cmp eax, 2
jne 0x429914
movd eax, xmm1
cmp al, 0x4b
je 0x429914
jmp 0x42a528
lea eax, [esp + 0x30]
movq xmm0, qword [eax]
movq xmm1, qword [eax + 8]
movq qword [esp + 0xb0], xmm1
movq qword [esp + 0xa8], xmm0
mov ebx, dword [esp + 8]
mov esi, dword [esp + 0xc]
jmp 0x429947
mov eax, dword [esp + 0xc4]
mov ecx, dword [esp + 0xa0]
mov edx, dword [esp + 0x9c]
or dword [esp + 0xc8], eax
je 0x42a2c8
mov eax, ecx
or eax, edx
je 0x42a2c8
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0x6c]
cmp dword [esp + 0x70], eax
sbb ecx, dword [esp + 0xe0]
jae 0x429914
mov edx, dword [ebx + 8]
cmp edx, dword [ebx]
jne 0x4298da
mov ecx, ebx
call sym.alloc::raw_vec::RawVec_LT_T_C_A_GT_::reserve_for_push::h81c9b2f78d9bbf2c
mov edx, dword [ebx + 8]
jmp 0x4298da
mov eax, dword [esp + 0xbc]
or dword [esp + 0xc0], eax
je 0x429914
or ecx, edx
je 0x429914
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x6c]
mov edx, eax
mov ebx, ecx
add edx, dword [esp + 0x114]
adc ebx, dword [esp + 0x110]
cmp eax, edx
mov eax, ecx
sbb eax, ebx
jae 0x429914
mov edi, dword [ebp + 0x18]
mov dword [esp + 0x100], edx
mov edx, dword [edi + 8]
cmp edx, dword [edi]
jne 0x42a325
mov ecx, edi
call sym.alloc::raw_vec::RawVec_LT_T_C_A_GT_::reserve_for_push::h81c9b2f78d9bbf2c
mov edx, dword [edi + 8]
mov eax, dword [edi + 4]
mov edi, dword [esp + 0x6c]
lea ecx, [edx + edx*2]
inc edx
mov dword [eax + ecx*8 + 4], edi
mov edi, dword [esp + 0x70]
mov dword [eax + ecx*8], edi
mov dword [eax + ecx*8 + 0xc], ebx
mov edi, dword [esp + 0x100]
mov ebx, dword [ebp + 0x1c]
mov dword [eax + ecx*8 + 8], edi
mov dword [eax + ecx*8 + 0x10], ebx
mov dword [eax + ecx*8 + 0x14], esi
mov ecx, dword [ebp + 0x18]
mov dword [ecx + 8], edx
jmp 0x429914
mov eax, dword [esp + 8]
mov byte [eax], 0x4b
jmp 0x42a5a0
movzx ecx, byte [esp + 0x2b]
mov edx, dword [esp + 0x34]
mov esi, dword [esp + 0x30]
mov ebx, dword [esp + 8]
mov byte [esp + 0x52], cl
movzx ecx, word [esp + 0x29]
mov ah, byte [esp + 0x52]
mov word [esp + 0x50], cx
mov ecx, dword [esp + 0x2c]
movzx edi, word [esp + 0x50]
mov byte [ebx + 3], ah
mov word [ebx + 1], di
mov byte [ebx], al
mov dword [ebx + 4], ecx
mov dword [ebx + 0xc], edx
mov dword [ebx + 8], esi
jmp 0x42a5a0
movzx ecx, byte [esp + 0x2b]
mov edi, dword [esp + 8]
mov ebx, dword [esp + 0x34]
mov edx, dword [esp + 0x2c]
mov esi, dword [esp + 0x30]
mov byte [edi + 3], cl
movzx ecx, word [esp + 0x29]
mov word [edi + 1], cx
mov byte [edi], al
mov dword [edi + 4], edx
mov dword [edi + 0xc], ebx
mov dword [edi + 8], esi
jmp 0x42a5a0
movsd xmm0, qword [esp + 0x29]
movsd xmm1, qword [esp + 0x30]
mov ecx, dword [esp + 8]
movsd qword [ecx + 8], xmm1
movsd qword [ecx + 1], xmm0
mov byte [ecx], al
jmp 0x42a5a0
mov esi, dword [esp + 0x11c]
xor ebx, ebx
mov al, 0x13
xor edx, edx
jmp 0x42a555
pshufd xmm0, xmm1, 0x55
mov esi, eax
mov bl, ah
movd ecx, xmm0
pshufd xmm0, xmm1, 0xff
shrd esi, ecx, 0x10
shr ecx, 0x10
movd edx, xmm0
pshufd xmm0, xmm1, 0xee
mov dword [esp + 0xcc], ecx
movd ecx, xmm0
mov byte [esp + 0xa9], bl
mov dword [esp + 0xaa], esi
mov esi, dword [esp + 0xcc]
mov ebx, dword [esp + 8]
mov word [esp + 0xae], si
mov dword [esp + 0xb0], ecx
mov dword [esp + 0xb4], edx
lea ecx, [esp + 0xa9]
movsd xmm1, qword [ecx + 7]
movsd xmm0, qword [ecx]
movsd qword [ebx + 8], xmm1
movsd qword [ebx + 1], xmm0
mov byte [ebx], al
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret