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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xa8
call 0x47161f
pop eax
mov dword [esp + 0x9c], edx
mov ebx, ecx
mov ebp, dword [esp + 0xbc]
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0xc0]
mov dword [ebp + 8], 0
mov dword [ebp + 0x24], 0
mov dword [ebp + 0x38], 0
mov dword [ebp + 0x54], 0
mov dword [ebp + 0x68], 0
mov ecx, dword [eax + 0x10]
mov edx, dword [eax + 0x14]
cmp ecx, edx
mov dword [esp + 0x98], ecx
mov dword [esp + 0x7c], edx
jbe 0x47167e
add esp, 0xa8
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, dword [eax + 0xc]
cmp ecx, 0xffffffff
mov dword [esp], ecx
je 0x476baf
mov ecx, dword [eax]
test ecx, ecx
je 0x4716a0
cmp ecx, 1
jne 0x4716b7
mov ecx, dword [ebx + 0x128]
jmp 0x4716cb
mov ecx, dword [ebx + 0x128]
cmp ecx, dword [ebx + 0x12c]
mov dword [esp + 0x78], ecx
sete byte [esp + 0x5f]
jmp 0x4716d4
mov ecx, dword [eax + 4]
cmp dword [ebx + 0x154], ecx
jbe 0x471673
mov edx, dword [ebx + 0x150]
mov ecx, dword [edx + ecx*4]
mov dword [esp + 0x78], ecx
mov byte [esp + 0x5f], 1
mov ecx, dword [eax + 8]
movzx eax, byte [eax + 0x18]
mov esi, dword [esp + 0xc4]
mov dword [esp + 0xc], ebx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x9c]
mov byte [esp + 0x72], al
mov eax, dword [esi + 8]
mov esi, dword [esp + 0x98]
cmp cl, 2
mov dword [esp + 4], esi
mov dword [esp + 0xa0], esi
sete dl
or dl, cl
mov ecx, dword [ebp + 0x24]
mov byte [esp + 0x73], dl
mov dword [esp + 0x54], ecx
mov ecx, esi
cmp byte [esp + 0x9c], 0
mov edx, dword [esp + 4]
setne cl
cmp edx, dword [esp + 0x7c]
adc dword [esp + 0xa0], 0
test eax, eax
setne al
and al, cl
cmp dword [esp + 0x54], 0
je 0x471760
test al, al
je 0x471776
jmp 0x472b60
cmp edx, dword [esp + 0x98]
seta cl
and cl, byte [esp + 0x5f]
or al, cl
jne 0x471673
mov edx, dword [ebp + 8]
cmp edx, dword [ebp]
jne 0x471788
mov ecx, ebp
call fcn.0041b6a0
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 4]
mov edi, dword [esp + 0x78]
lea ecx, [edx + edx*2]
inc edx
mov dword [eax + ecx*4], 0
mov dword [eax + ecx*4 + 4], edi
mov dword [ebp + 8], edx
je 0x472b60
mov ecx, dword [esp + 4]
mov eax, dword [esp]
mov esi, 0
sub eax, ecx
lea edi, [ecx - 1]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x18], edi
add eax, ecx
sub ecx, 4
cmovb ecx, esi
mov dword [esp + 0x50], eax
mov dword [esp + 0x10], ecx
jmp 0x4717ec
mov ebp, dword [esp + 0xbc]
mov edx, dword [ebp + 8]
test edx, edx
je 0x472b60
dec edx
mov dword [ebp + 8], edx
lea edx, [edx + edx*2]
mov ecx, dword [ebp + 4]
mov eax, dword [ecx + edx*4]
mov ecx, dword [ecx + edx*4 + 4]
test eax, eax
je 0x471813
jmp 0x472b52
mov edx, dword [ebp + 0x20]
mov dword [esp + 0x58], ecx
cmp edx, ecx
jbe 0x476920
mov edi, dword [ebp + 0x1c]
mov esi, ecx
mov eax, dword [ebp + 0x14]
mov ecx, dword [edi + ecx*4]
cmp ecx, dword [esp + 0x54]
jae 0x47184e
cmp ecx, eax
jae 0x476936
mov ebx, dword [esp + 0xbc]
mov ebx, dword [ebx + 0x10]
cmp dword [ebx + ecx*4], esi
mov ebx, dword [esp + 0xc]
je 0x4717da
mov ecx, dword [esp + 0x54]
cmp ecx, eax
mov dword [esp + 0x68], ecx
jae 0x476a4d
mov ebp, dword [esp + 0xbc]
mov eax, dword [ebp + 0x10]
mov dword [eax + ecx*4], esi
mov eax, esi
mov esi, ecx
mov ecx, dword [esp + 0x58]
cmp ecx, edx
jae 0x476916
mov dword [edi + ecx*4], esi
inc esi
mov dword [ebp + 0x24], esi
mov edx, dword [ebx + 0x148]
cmp edx, eax
jbe 0x47692a
mov ecx, dword [ebx + 0x144]
lea edx, [eax + eax*4]
mov edi, eax
mov dword [esp + 0x54], esi
lea eax, [ecx + edx*4]
mov ecx, dword [ecx + edx*4]
mov ecx, dword [ecx*4 + 0x476c08]
add ecx, dword [esp + 0x64]
jmp ecx
cmp eax, 2
jne 0x476ae9
nop dword [eax + eax]
cmp byte [ebx + 0x15a], 0
je 0x472b90
cmp byte [ebx + 0x15b], 0
setne al
mov dword [esp + 0xa4], eax
mov edx, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x24]
cmp ecx, edx
jbe 0x472ba9
jmp 0x476b4f
mov dword [esp + 0xa4], 0
mov edx, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x24]
cmp ecx, edx
ja 0x476b4f
test ecx, ecx
je 0x476880
mov esi, dword [esp + 4]
mov eax, 0
mov ebp, dword [ebp + 0x10]
lea edi, [esi + 1]
mov ebx, dword [ebp]
mov edx, edi
sub edx, 4
cmovb edx, eax
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0xc]
mov edx, dword [edx + 0x148]
cmp edx, ebx
jbe 0x476952
lea eax, [ebp + ecx*4]
mov ecx, ebp
mov dword [esp + 8], edi
mov dword [esp + 0x50], eax
lea eax, [esi + 2]
mov dword [esp + 0x74], eax
mov eax, dword [esp]
sub eax, edi
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x14]
lea eax, [eax + esi + 1]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0xc]
jmp 0x472c49
mov eax, dword [eax + 0x144]
add ecx, 4
mov dword [esp + 0x20], ecx
lea ecx, [ebx + ebx*4]
lea esi, [eax + ecx*4]
mov eax, dword [eax + ecx*4]
mov eax, dword [eax*4 + 0x476d2c]
add eax, dword [esp + 0x64]
jmp eax
mov ecx, dword [esp + 0xc4]
mov ebx, dword [esp + 0xc]
mov eax, dword [ecx + 8]
cmp eax, dword [ecx + 4]
je 0x471673
cmp byte [esp + 0x72], 0
jne 0x471673
movups xmm0, xmmword [ebp + 0x3c]
movups xmm1, xmmword [ebp + 0xc]
mov ecx, dword [esp + 4]
movups xmmword [ebp + 0xc], xmm0
movups xmmword [ebp + 0x3c], xmm1
cmp ecx, dword [esp + 0x7c]
movsd xmm1, qword [ebp + 0x1c]
movdqu xmm0, xmmword [ebp + 0x4c]
movsd qword [ebp + 0x4c], xmm1
mov ecx, dword [ebp + 0x38]
movups xmm1, xmmword [ebp + 0x5c]
movups xmm2, xmmword [ebp + 0x28]
movdqu xmmword [ebp + 0x1c], xmm0
movups xmmword [ebp + 0x58], xmm2
movups xmmword [ebp + 0x2c], xmm1
mov dword [ebp + 0x68], ecx
mov dword [ebp + 0x54], 0
jae 0x471673
mov ecx, dword [esp + 0xa0]
pshufd xmm0, xmm0, 0xee
movd dword [esp + 0x54], xmm0
cmp ecx, dword [esp + 0x7c]
mov dword [esp + 4], ecx
jbe 0x47171f
jmp 0x471673
push 0x4e75b8
call fcn.004d63d0
push 0x4e75c8
call fcn.004d63d0
mov ecx, eax
push 0x4e6008
call fcn.004d63d0
mov edx, eax
push 0x4e75d8
call fcn.004d63d0
mov ecx, edx
mov edx, dword [esp + 8]
push 0x4e75f8
call fcn.004d63d0
mov ecx, ebx
push 0x4e6008
call fcn.004d63d0
mov ecx, edi
push 0x4e75c8
call fcn.004d63d0
mov ecx, esi
push 0x4e6008
call fcn.004d63d0
mov ecx, edx
mov edx, dword [esp + 4]
push 0x4e75f8
call fcn.004d63d0
mov ecx, edx
mov edx, ebx
push 0x4e75f8
call fcn.004d63d0
mov ecx, edx
mov edx, dword [esp + 0x28]
push 0x4e63f0
call fcn.004d63d0
mov edx, dword [esp + 0x10]
mov ecx, edi
push 0x4e63f0
call fcn.004d63d0
push 0x4e6a40
call fcn.004d63d0
push 0x4e6254
call fcn.004d63d0
mov edx, dword [esp]
push 0x4e6a20
call fcn.004d63d0
mov edx, dword [esp]
push 0x4e6864
call fcn.004d63d0
mov edx, dword [esp]
push 0x4e6a70
call fcn.004d63d0
mov edx, dword [esp]
push 0x4e6a60
call fcn.004d63d0
mov edx, dword [esp]
push 0x4e6a80
call fcn.004d63d0
mov ecx, dword [esp + 8]
mov edx, dword [esp]
push 0x4e6874
call fcn.004d63d0
mov ecx, dword [esp + 8]
mov edx, dword [esp]
push 0x4e6a30
call fcn.004d63d0
mov ecx, dword [esp + 4]
mov edx, dword [esp]
push 0x4e6874
call fcn.004d63d0
mov ecx, dword [esp + 4]
mov edx, dword [esp]
push 0x4e6a30
call fcn.004d63d0
lea edx, [esp + 0x68]
lea ecx, [esp + 0x6c]
mov dword [esp + 0x80], 0x4e7590
mov dword [esp + 0x84], 3
mov dword [esp + 0x90], 0
mov dword [esp + 0x6c], eax
mov dword [esp + 0x30], edx
mov dword [esp + 0x34], 0x419060
mov dword [esp + 0x38], ecx
lea ecx, [esp + 0x30]
lea edx, [esp + 0x58]
mov dword [esp + 0x3c], 0x419060
mov dword [esp + 0x40], edx
mov dword [esp + 0x88], ecx
lea ecx, [esp + 0x80]
mov edx, 0x4e75a8
mov dword [esp + 0x44], 0x42ad00
mov dword [esp + 0x8c], 3
call fcn.004d6340
mov ecx, str.called__Option::unwrap____on_a__None__value_rustc_07dca489ac2d933c78d3c5158e3f43beefeb02celibrarycore_srcio_borrowed_buf.rs
mov edx, 0x2b
push 0x4e6400
call fcn.004d6490
mov ecx, eax
push 0x4e6464
call fcn.004d6430
xor edx, edx
push 0x4e63f0
call fcn.004d63d0
mov ecx, edi
mov edx, eax
push 0x4e6464
call fcn.004d6620
xor edx, edx
push 0x4e6410
call fcn.004d6900
mov edx, dword [esp + 0x28]
push 0x4e6410
call fcn.004d6900
mov ecx, str.called__Option::unwrap____on_a__None__value_rustc_07dca489ac2d933c78d3c5158e3f43beefeb02celibrarycore_srcio_borrowed_buf.rs
mov edx, 0x2b
push 0x4e75e8
call fcn.004d6490
mov ecx, ebx
mov edx, eax
push 0x4e6464
call fcn.004d6620
mov ecx, edx
mov edx, dword [esp + 4]
push 0x4e7608
call fcn.004d6370
push 0x4e63d0
call fcn.004d6430
mov ecx, ebx
mov edx, dword [esp]
push 0x4e6aa0
call fcn.004d6430
mov ecx, esi
mov edx, eax
push 0x4e6464
call fcn.004d6620
mov edx, dword [esp + 0x10]
push 0x4e6410
call fcn.004d6900
mov ecx, dword [esp + 4]
mov edx, dword [esp]
push 0x4e6a90
call fcn.004d6430
mov ecx, edx
mov edx, ebx
push 0x4e7608
call fcn.004d6370
mov edx, ebx
push 0x4e6aa0
call fcn.004d6430
lea ecx, [esp + 0x30]
mov edx, 0x4e6348
mov dword [esp + 0x30], 0x4e6330
mov dword [esp + 0x34], 1
mov dword [esp + 0x40], 0
mov dword [esp + 0x38], str._rustc_07dca489ac2d933c78d3c5158e3f43beefeb02celibrarycore_src_sliceiter.rs
mov dword [esp + 0x3c], 0
call fcn.004d6340
mov ecx, edx
mov edx, dword [esp + 8]
push 0x4e7608
call fcn.004d6370
mov ecx, dword [esp + 8]
mov edx, dword [esp]
push 0x4e6a90
call fcn.004d6430
ud2