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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xc0
mov eax, dword [esp + 0xd8]
mov ebp, dword [esp + 0xd4]
mov esi, dword [esp + 0xe0]
call 0x502eb4
pop ebx
mov dword [esp + 0x48], ebx
mov dword [ebp + 8], 0
mov dword [ebp + 0x24], 0
mov dword [ebp + 0x38], esi
mov dword [ebp + 0x54], 0
mov dword [ebp + 0x68], esi
mov edi, dword [eax + 0x14]
mov esi, dword [eax + 0x10]
cmp esi, edi
mov dword [esp + 0xac], edi
jbe 0x502ef6
mov dword [ecx], 0
add esp, 0xc0
pop esi
pop edi
pop ebx
pop ebp
ret
mov edi, dword [eax + 0xc]
mov dword [esp + 0xa0], ecx
cmp edi, 0xffffffff
mov dword [esp + 0x10], edi
je 0x508575
mov ecx, dword [eax + 8]
mov dword [esp + 0x18], ecx
movzx ecx, byte [edx + 0x14]
mov byte [esp + 0x5b], cl
mov ecx, dword [edx]
mov dword [esp + 0x60], ecx
mov ecx, dword [eax]
test ecx, ecx
je 0x502f39
cmp ecx, 1
jne 0x502f78
mov ecx, dword [esp + 0x60]
mov ecx, dword [ecx + 0x130]
jmp 0x502f94
mov ecx, dword [esp + 0x60]
mov edi, dword [ecx + 0x130]
cmp edi, dword [ecx + 0x134]
mov dword [esp + 0x84], edi
je 0x502f9b
cmp byte [edx + 0x10], 3
lea ecx, [edx + 4]
mov edx, 0x59bd14
mov dword [esp + 0x78], 0
cmovne edx, ecx
xor ecx, ecx
cmp byte [edx + 0xc], 2
cmove edx, ecx
mov dword [esp + 0x7c], edx
jmp 0x502fa9
mov ecx, dword [eax + 4]
mov edx, dword [esp + 0x60]
cmp dword [edx + 0x15c], ecx
jbe 0x5082d8
mov edx, dword [edx + 0x158]
mov ecx, dword [edx + ecx*4]
mov dword [esp + 0x84], ecx
mov cl, 1
mov dword [esp + 0x7c], 0
mov dword [esp + 0x78], ecx
mov ecx, dword [esp + 0xe0]
movzx edx, byte [esp + 0x5b]
movzx eax, byte [eax + 0x18]
mov dword [esp + 8], esi
mov dword [esp + 0xbc], esi
lea ecx, [ecx*4]
cmp dl, 2
mov byte [esp + 0x77], al
mov dword [esp + 0xb4], ecx
setne cl
test dl, 1
sete dl
xor eax, eax
and dl, cl
xor ecx, ecx
mov byte [esp + 0x76], dl
jmp 0x50304b
movups xmm0, xmmword [ebp + 0x3c]
movups xmm1, xmmword [ebp + 0xc]
movups xmmword [ebp + 0xc], xmm0
movups xmmword [ebp + 0x3c], xmm1
movsd xmm1, qword [ebp + 0x1c]
movdqu xmm0, xmmword [ebp + 0x4c]
movsd qword [ebp + 0x4c], xmm1
mov eax, dword [ebp + 0x38]
movups xmm1, xmmword [ebp + 0x5c]
movups xmm2, xmmword [ebp + 0x28]
movdqu xmmword [ebp + 0x1c], xmm0
pshufd xmm0, xmm0, 0xee
movups xmmword [ebp + 0x58], xmm2
movups xmmword [ebp + 0x2c], xmm1
mov dword [ebp + 0x68], eax
mov eax, dword [esp + 8]
mov dword [ebp + 0x54], 0
cmp eax, dword [esp + 0xac]
movd eax, xmm0
ja 0x508357
test eax, eax
mov dword [esp + 0x64], ecx
je 0x503060
mov edi, dword [esp + 8]
jmp 0x5030d5
cmp byte [esp + 0x5b], 0
sete al
cmp ecx, 1
setne cl
cmp dword [esp + 8], esi
seta dl
test byte [esp + 0x78], dl
jne 0x508353
or al, cl
mov ecx, dword [esp + 0x64]
je 0x508357
mov eax, dword [esp + 0x7c]
test eax, eax
je 0x503053
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov edx, dword [eax + 8]
dec edx
and edx, 0xfffffff8
lea ecx, [edx + ecx + 8]
push dword [esp + 0xac]
push dword [esp + 0xc]
push dword [esp + 0x18]
push dword [esp + 0x24]
push ecx
lea ecx, [esp + 0x44]
push ecx
call dword [eax + 0x20]
add esp, 0x18
cmp dword [esp + 0x30], 0
je 0x508353
mov edi, dword [esp + 0x34]
mov ecx, dword [esp + 0x64]
cmp byte [esp + 0x5b], 0
mov dword [esp], edi
sete al
cmp ecx, 1
setne cl
cmp edi, esi
mov esi, edi
setne dl
test byte [esp + 0x78], dl
jne 0x50314e
or al, cl
je 0x50314e
mov edx, dword [ebp + 0x60]
mov esi, dword [ebp + 0x68]
mov ecx, edx
mov eax, esi
mov dword [esp + 0xc], esi
sub ecx, esi
jb 0x50856b
mov edx, dword [ebp + 8]
shl ecx, 2
add ecx, dword [ebp + 0x5c]
cmp edx, dword [ebp]
mov dword [esp + 0x68], ecx
jne 0x503129
mov ecx, ebp
call fcn.00418db0
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 4]
mov esi, dword [esp + 0x84]
lea ecx, [edx + edx*2]
inc edx
mov dword [eax + ecx*4], 0
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp]
mov dword [ebp + 8], edx
jne 0x506e80
mov edx, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x24]
cmp ecx, edx
ja 0x508543
mov edi, dword [ebp + 0x10]
lea eax, [esi + 1]
lea ebx, [esi + 2]
mov dword [esp + 0xb0], 0
mov dword [esp + 8], eax
mov dword [esp + 0x50], ebx
lea edx, [edi + ecx*4]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x80], edx
sub ecx, eax
mov dword [esp + 0x4c], ecx
xor ecx, ecx
sub eax, 4
cmovb eax, ecx
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x18]
lea eax, [eax + esi + 1]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x60]
cmp edi, edx
je 0x506e1e
mov ebp, dword [esp + 0x48]
jmp 0x5031d7
mov ebx, dword [edi]
mov edx, dword [eax + 0x150]
cmp edx, ebx
jbe 0x508379
mov eax, dword [eax + 0x14c]
add edi, 4
lea ecx, [ebx + ebx*4]
mov dword [esp + 0x68], edi
lea edi, [eax + ecx*4]
mov eax, dword [eax + ecx*4]
mov eax, dword [eax*4 + 0x508730]
add eax, ebp
jmp eax
mov eax, dword [esp + 0xb0]
mov edi, dword [esp + 0xa4]
mov edx, dword [esp + 0xa8]
cmp eax, 1
cmove edx, esi
cmove edi, dword [esp + 0xb8]
cmove ecx, eax
cmp byte [esp + 0x77], 0
mov esi, dword [esp + 0xbc]
mov dword [esp + 0xa8], edx
mov dword [esp + 0xa4], edi
je 0x502ff0
cmp ecx, 1
jne 0x502ff0
jmp 0x508324
lea eax, [esi + 1]
mov ecx, esi
mov ebx, dword [ebp + 0x24]
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x10]
sub eax, esi
sub ecx, 4
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x18]
lea eax, [eax + esi]
mov dword [esp + 0x50], eax
lea eax, [esi - 1]
mov dword [esp + 0x1c], eax
mov eax, 0
cmovb ecx, eax
mov eax, dword [esp + 0xc]
mov dword [esp + 8], ecx
lea eax, [eax*4]
mov dword [esp + 0x20], eax
jmp 0x506edb
mov esi, dword [esp]
nop
mov edx, dword [ebp + 8]
test edx, edx
je 0x50314e
dec edx
mov dword [ebp + 8], edx
lea ecx, [edx + edx*2]
mov eax, dword [ebp + 4]
mov edx, dword [eax + ecx*4]
mov edi, dword [eax + ecx*4 + 4]
test edx, edx
je 0x506f25
cmp edx, 2
je 0x50314e
cmp edi, dword [esp + 0xc]
jae 0x5083a3
mov eax, dword [eax + ecx*4 + 8]
mov edx, dword [esp + 0x68]
mov dword [edx + edi*4], eax
jmp 0x506ed0
mov edx, dword [ebp + 0x20]
mov dword [esp + 0x54], edi
cmp edx, edi
jbe 0x508318
mov esi, dword [ebp + 0x1c]
mov eax, dword [ebp + 0x14]
mov ecx, dword [esi + edi*4]
cmp ecx, ebx
jae 0x506f6b
cmp ecx, eax
jae 0x50830c
mov ebp, edi
mov edi, ebx
mov ebx, dword [esp + 0xd4]
mov ebx, dword [ebx + 0x10]
cmp dword [ebx + ecx*4], ebp
mov ebx, edi
mov edi, ebp
mov ebp, dword [esp + 0xd4]
je 0x506ecb
cmp ebx, eax
mov dword [esp + 0x6c], ebx
jae 0x5083f5
mov eax, dword [ebp + 0x10]
mov dword [eax + ebx*4], edi
mov ecx, dword [esp + 0x54]
cmp ecx, edx
jae 0x5082ea
mov eax, dword [esp + 0x60]
mov dword [esi + ecx*4], ebx
inc ebx
mov dword [ebp + 0x24], ebx
mov edx, dword [eax + 0x150]
cmp edx, edi
jbe 0x508347
mov ecx, dword [eax + 0x14c]
lea edx, [edi + edi*4]
lea eax, [ecx + edx*4]
mov ecx, dword [ecx + edx*4]
mov ecx, dword [ecx*4 + 0x50860c]
add ecx, dword [esp + 0x48]
jmp ecx
mov eax, dword [esp + 0xa0]
mov dword [eax], 0
jmp 0x502eeb
push 0x59eb10
call fcn.0057f710
mov ecx, esi
push 0x59eb20
call fcn.0057f710
mov ecx, esi
push 0x59d604
call fcn.0057f710
mov edx, eax
push 0x59eb30
call fcn.0057f710
mov ecx, edi
push 0x59eb20
call fcn.0057f710
mov ecx, 1
jmp 0x508357
mov ecx, edi
push 0x59d604
call fcn.0057f710
mov ecx, dword [esp + 0x64]
mov eax, dword [esp + 0xa0]
mov esi, dword [esp + 0xa4]
mov edx, dword [esp + 0xa8]
mov dword [eax], ecx
mov dword [eax + 4], esi
mov dword [eax + 8], edx
jmp 0x502eeb
mov ecx, ebx
push 0x59d604
call fcn.0057f710
mov ecx, edx
mov edx, esi
push 0x59eb60
call fcn.0057f710
mov edx, dword [esp + 0x1c]
mov ecx, esi
push 0x59d964
call fcn.0057f710
mov edx, dword [esp + 0xc]
mov ecx, edi
push 0x59d964
call fcn.0057f710
push 0x59d850
call fcn.0057f710
mov ecx, dword [esp + 0x1c]
push 0x59dfb0
call fcn.0057f710
push 0x59dfa0
call fcn.0057f710
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x10]
push 0x59dde4
call fcn.0057f710
mov ecx, dword [esp + 8]
push 0x59dfa0
call fcn.0057f710
lea edx, [esp + 0x6c]
lea ecx, [esp + 0x70]
mov dword [esp + 0x88], 0x59eae8
mov dword [esp + 0x8c], 3
mov dword [esp + 0x98], 0
mov dword [esp + 0x70], eax
mov dword [esp + 0x30], edx
mov dword [esp + 0x34], 0x45c6a0
mov dword [esp + 0x38], ecx
lea ecx, [esp + 0x30]
lea edx, [esp + 0x54]
mov dword [esp + 0x3c], 0x45c6a0
mov dword [esp + 0x40], edx
mov dword [esp + 0x90], ecx
lea ecx, [esp + 0x88]
mov edx, 0x59eb00
mov dword [esp + 0x44], 0x4c6db0
mov dword [esp + 0x94], 3
call fcn.0057f680
mov edx, dword [esp + 0x10]
push 0x59dfe0
call fcn.0057f710
mov edx, dword [esp + 0x10]
push 0x59ddd4
call fcn.0057f710
push 0x59df90
call fcn.0057f710
mov edx, dword [esp + 0x10]
push 0x59dfd0
call fcn.0057f710
mov edx, dword [esp + 0x10]
push 0x59dff0
call fcn.0057f710
mov ecx, esi
push 0x59dfa0
call fcn.0057f710
mov ecx, esi
mov edx, dword [esp + 0x10]
push 0x59dde4
call fcn.0057f710
mov ecx, 0x59d974
call fcn.0057fb10
mov ecx, eax
push 0x59d9d8
call fcn.0057f770
mov ecx, esi
mov edx, eax
push 0x59d9d8
call fcn.0057f990
mov edx, dword [esp + 0x1c]
push 0x59d984
call fcn.0057fc90
mov edx, dword [esp + 0xc]
push 0x59d984
call fcn.0057fc90
mov ecx, ebx
mov edx, eax
push 0x59d9d8
call fcn.0057f990
mov ecx, 0x59eb50
call fcn.0057fb10
mov ecx, ebp
mov edx, eax
push 0x59d9d8
call fcn.0057f990
mov ecx, edi
mov edx, eax
push 0x59d9d8
call fcn.0057f990
push 0x59eb40
call fcn.0057f770
mov ecx, edx
mov edx, esi
push 0x59eb70
call fcn.0057f6b0
mov ecx, esi
mov edx, dword [esp + 0x10]
push 0x59e010
call fcn.0057f770
push 0x59d9e8
call fcn.0057f990
lea ecx, [esp + 0x30]
mov edx, 0x59d934
mov dword [esp + 0x30], 0x59d92c
mov dword [esp + 0x34], 1
mov dword [esp + 0x40], 0
mov dword [esp + 0x38], str._rustc_aedd173a2c086e558c2b66d3743b344f977621a7librarycore_src_strpattern.rs
mov dword [esp + 0x3c], 0
call fcn.0057f680
mov ecx, edx
mov edx, eax
push 0x59eb70
call fcn.0057f6b0
mov ecx, esi
mov edx, dword [esp + 0x10]
push 0x59e000
call fcn.0057f770
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x10]
push 0x59e000
call fcn.0057f770
mov ecx, edx
mov edx, dword [esp + 8]
push 0x59eb70
call fcn.0057f6b0
mov ecx, eax
mov edx, esi
push 0x59d9d8
call fcn.0057f770
mov ecx, dword [esp + 0xe0]
push 0x59d954
call fcn.0057fc90
ud2