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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x94
mov edi, edx
mov ebp, ecx
mov edx, dword [esp + 0xa8]
lea esi, [esp + 0x18]
mov ecx, esi
push dword [esp + 0xac]
call fcn.004efdd9
pop eax
mov eax, dword [esi]
mov edx, dword [esi + 4]
mov ecx, dword [esi + 8]
mov dword [esp + 0x14], ecx
cmp eax, 0x5c
je 0x4ed585
cmp eax, 0x2f
jne 0x4ed685
mov dword [esp], edi
mov edi, dword [edi + 0x18]
mov dword [esp + 0x44], eax
cmp eax, 0x5c
jne 0x4ed5ab
test edi, edi
je 0x4ed5ab
mov eax, dword [esp]
mov eax, dword [eax + 0x1c]
push 0
push edi
mov esi, edx
call dword [eax + 0x14]
mov edx, esi
add esp, 8
lea ebx, [esp + 0x18]
mov ecx, ebx
mov dword [esp + 0x40], edx
push dword [esp + 0x14]
call fcn.004efdd9
pop eax
mov eax, dword [ebx]
mov esi, dword [ebx + 4]
mov ebx, dword [ebx + 8]
cmp eax, 0x2f
je 0x4ed5d5
cmp eax, 0x5c
jne 0x4ed6d9
cmp eax, 0x5c
jne 0x4ed5ed
test edi, edi
je 0x4ed5ed
mov eax, dword [esp]
mov eax, dword [eax + 0x1c]
push 0
push edi
call dword [eax + 0x14]
add esp, 8
mov ecx, dword [esp]
mov edx, 0x570338
push 7
call fcn.004ebac3
pop eax
lea edi, [esp + 0x18]
mov ecx, edi
mov edx, esi
push ebx
call fcn.004f03e9
pop eax
mov bl, byte [edi]
cmp byte [edi + 0xc], 2
je 0x4ed673
movzx eax, bl
movzx esi, byte [esp + 0x1b]
movzx ecx, word [esp + 0x19]
shl ecx, 8
shl esi, 0x18
or esi, ecx
or esi, eax
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
mov ebx, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 8], ecx
test eax, eax
je 0x4ed8e9
mov dword [esp + 0xc], edx
lea edi, [esp + 0x18]
mov ecx, edi
mov edx, esi
push eax
call fcn.004ec731
pop eax
mov al, byte [edi]
cmp al, 3
jne 0x4ed903
mov bl, byte [esp + 0x19]
mov ecx, esi
mov edx, dword [esp + 0xc]
call fcn.0044547d
mov byte [ebp + 4], bl
mov dword [ebp], 2
mov esi, dword [esp]
jmp 0x4eddd8
mov edx, dword [esp + 0xb4]
test edx, edx
je 0x4ed841
cmp eax, 0x23
je 0x4edb5e
cmp eax, 0x3f
je 0x4edb4d
cmp eax, 0x110000
jne 0x4edb96
cmp dword [edx + 8], 0
je 0x4ede49
mov ecx, dword [edx + 0x14]
mov ebx, edx
mov edx, dword [edx + 0x1c]
push 0x570320
push dword [ebx + 0xc]
call fcn.004ed3e6
pop ecx
pop ecx
mov esi, edx
jmp 0x4ede51
push 7
pop esi
mov edi, dword [esp]
mov ecx, edi
mov edx, 0x570338
push 7
call fcn.004ebac3
pop eax
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x14]
call fcn.004f05a1
mov ecx, dword [esp + 0xb4]
test ecx, ecx
mov dword [esp + 0x10], ebp
je 0x4ed8dc
test al, al
jne 0x4ed8dc
call fcn.004f11bf
mov ecx, eax
push 0x2f
call fcn.004ec4cb
pop ecx
test eax, eax
je 0x4edf9c
push 0x2f
pop ecx
lea esi, [esp + 0x30]
mov dword [esi - 0x18], ecx
mov dword [esi - 0x14], eax
mov dword [esi - 0x10], edx
and dword [esi - 0xc], 0
mov dword [esi - 8], edx
mov dword [esi - 4], 1
mov dword [esi], ecx
and dword [esi + 4], 0
mov dword [esi + 8], edx
mov word [esi + 0xc], 1
mov dword [esp + 4], edx
mov dword [esp + 0x60], eax
mov ebp, eax
xor edi, edi
mov eax, dword [esp + 0x2c]
mov dword [esp + 8], eax
mov dword [esp + 0xc], ebp
mov dword [esp + 0x48], edx
cmp edx, dword [esp + 4]
seta cl
mov eax, edx
sub eax, edi
setb ch
or ch, cl
lea edx, [edi + ebp]
test ch, ch
mov ecx, edx
mov ebx, 0
cmovne ecx, ebx
cmove esi, eax
jne 0x4edb1e
mov ebx, dword [esp + 8]
mov bl, byte [esp + ebx + 0x2f]
cmp eax, 7
ja 0x4ed7bb
xor eax, eax
xor edx, edx
cmp esi, edx
je 0x4ed7c7
cmp byte [ecx + edx], bl
je 0x4ed7cb
inc edx
jmp 0x4ed7af
movzx ecx, bl
push eax
call fcn.00426860
pop ecx
jmp 0x4ed7ce
mov edx, esi
jmp 0x4ed7ce
xor eax, eax
inc eax
cmp eax, 1
jne 0x4edb16
add edi, edx
inc edi
mov dword [esp + 0x24], edi
mov ebx, edi
sub ebx, dword [esp + 8]
mov ebp, dword [esp + 0xc]
mov edx, dword [esp + 0x48]
jb 0x4ed776
cmp edi, dword [esp + 4]
ja 0x4ed776
add ebp, ebx
mov dword [esp + 0xc], ebp
mov edi, dword [esp + 8]
mov ecx, edi
lea edx, [esp + 0x30]
push 0x5702a4
call fcn.004ec1dd
pop ecx
mov ebp, edx
mov ecx, dword [esp + 0xc]
mov edx, edi
push ebp
push eax
call fcn.004c55f1
pop ecx
pop edx
test al, al
jne 0x4edf79
mov ebp, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
mov dword [esp + 4], eax
mov edi, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
jmp 0x4ed766
mov ecx, edi
mov edx, str.file:___file:__
push 8
call fcn.004ebac3
pop eax
mov ebx, edi
lea edi, [esp + 0x18]
mov byte [edi], 0
mov ecx, ebx
xor edx, edx
push dword [esp + 0xac]
push dword [esp + 0xac]
push 7
push esi
call fcn.004eea19
add esp, 0x10
mov esi, edx
mov ecx, edi
mov edx, ebx
push esi
push eax
push 4
push 0
call fcn.004efe05
add esp, 0x10
mov eax, dword [edi]
cmp eax, 2
je 0x4eddc8
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov esi, dword [esp + 0x24]
mov edi, dword [ebx + 8]
mov dword [ebp + 0x1c], edi
movsd xmm0, qword [ebx]
movsd qword [ebp + 0x14], xmm0
mov dword [ebp], eax
mov dword [ebp + 4], ecx
mov dword [ebp + 8], edx
mov dword [ebp + 0xc], esi
and word [ebp + 0x10], 0
movaps xmm0, xmmword [0x50cf90]
movups xmmword [ebp + 0x20], xmm0
mov dword [ebp + 0x30], 7
mov byte [ebp + 0x34], 0
jmp 0x4edde2
mov dword [esp + 4], 0
jmp 0x4edc55
mov dword [esp + 4], ebx
mov dword [esp + 0x10], ebp
xor ebx, ebx
mov dword [esp + 0x14], 0
mov edi, dword [esp]
jmp 0x4ed9d2
mov dword [esp + 4], ebx
mov dword [esp + 0x10], ebp
mov cl, byte [esp + 0x19]
movups xmm0, xmmword [esp + 0x1a]
movups xmmword [esp + 0x4e], xmm0
movzx edx, word [esp + 0x2a]
mov word [esp + 0x5e], dx
mov byte [esp + 0x4c], al
mov byte [esp + 0x4d], cl
test al, al
jne 0x4ed954
lea ecx, [esp + 0x50]
call fcn.004f0573
test al, al
je 0x4ed954
lea ecx, [esp + 0x4c]
call fcn.004ed419
xor ebx, ebx
mov dword [esp + 0x14], 0
mov edi, dword [esp]
jmp 0x4ed9ce
mov eax, dword [esp + 0x5c]
lea ebx, [esp + 0x64]
mov dword [ebx + 0x10], eax
movups xmm0, xmmword [esp + 0x4c]
movups xmmword [ebx], xmm0
lea eax, [esp + 0x78]
lea ebp, [esp + 0x18]
mov dword [ebp], str.OutOfRangeImpossibleNotEnoughInvalidTooShortTooLongBadFormat__NonexhaustiveEmpty
xor ecx, ecx
inc ecx
mov dword [ebp + 4], ecx
and dword [ebp + 0x10], 0
mov dword [eax], ebx
mov dword [eax + 4], 0x4ec227
mov dword [ebp + 8], eax
mov dword [ebp + 0xc], ecx
push edi
mov edi, dword [esp + 4]
push edi
call fcn.004ec44b
pop ecx
pop edx
movzx ecx, al
mov edx, 0x5703d4
call fcn.004f02de
mov eax, dword [ebx + 0x10]
mov dword [ebp + 0x10], eax
movups xmm0, xmmword [ebx]
movups xmmword [ebp], xmm0
lea ebx, [esp + 0x83]
mov ecx, ebx
mov edx, ebp
call fcn.004ec6f2
mov al, 1
mov dword [esp + 0x14], eax
mov bl, byte [ebx]
mov edx, dword [esp + 0xc]
movups xmm0, xmmword [esp + 0x84]
movups xmmword [esp + 0x64], xmm0
mov ecx, esi
call fcn.0044547d
mov esi, dword [edi + 8]
mov dword [esp + 0xc], ebx
test bl, bl
setne byte [esp + 0x4c]
cmp byte [esp + 0x14], 0
je 0x4eda16
lea eax, [esp + 0x4c]
mov ecx, edi
xor edx, edx
push dword [esp + 8]
push dword [esp + 8]
push eax
call fcn.004f0304
add esp, 0xc
jmp 0x4eda3a
push 0x2f
pop edx
mov ecx, edi
call fcn.0044814f
lea eax, [esp + 0x4c]
mov ecx, edi
xor edx, edx
push dword [esp + 8]
push dword [esp + 8]
push esi
push eax
call fcn.004eea19
add esp, 0x10
mov dword [esp + 8], eax
mov edi, edx
mov bl, byte [esp + 0xb0]
cmp byte [esp + 0x4c], 0
je 0x4eda53
mov ebp, dword [esp]
jmp 0x4eda81
lea ebx, [esp + 0x18]
mov ecx, ebx
mov ebp, dword [esp]
mov edx, ebp
push esi
push 7
call fcn.004ec5f8
pop eax
pop ecx
mov ecx, ebx
mov bl, byte [esp + 0xb0]
call fcn.00416b80
push 7
pop esi
mov dword [esp + 0xc], 0
movzx eax, bl
lea ebx, [esp + 0x18]
mov ecx, ebx
mov edx, ebp
push edi
push dword [esp + 0xc]
push 4
push eax
call fcn.004efe05
add esp, 0x10
mov eax, dword [ebx]
cmp eax, 2
jne 0x4edabb
mov al, byte [esp + 0x1c]
mov ecx, dword [esp + 0x10]
mov byte [ecx + 4], al
mov dword [ecx], 2
mov esi, ebp
jmp 0x4eddd8
mov ecx, dword [ebp + 8]
mov edx, dword [esp + 0x10]
mov dword [edx + 0x1c], ecx
movsd xmm0, qword [ebp]
movsd qword [edx + 0x14], xmm0
movups xmm0, xmmword [esp + 0x64]
movups xmmword [edx + 0x35], xmm0
mov dword [edx], eax
mov eax, dword [esp + 0x1c]
mov dword [edx + 4], eax
mov eax, dword [esp + 0x20]
mov dword [edx + 8], eax
mov eax, dword [esp + 0x24]
mov dword [edx + 0xc], eax
and word [edx + 0x10], 0
mov dword [edx + 0x20], 4
push 7
pop eax
mov dword [edx + 0x24], eax
mov dword [edx + 0x28], eax
mov dword [edx + 0x2c], esi
mov dword [edx + 0x30], esi
mov eax, dword [esp + 0xc]
mov byte [edx + 0x34], al
jmp 0x4edde2
mov eax, dword [esp + 0x48]
mov dword [esp + 0x24], eax
cmp byte [esp + 0x3d], 0
mov edi, dword [esp]
mov ecx, dword [esp + 0xc]
jne 0x4edf8d
mov byte [esp + 0x3d], 1
cmp byte [esp + 0x3c], 0
je 0x4edbde
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x38]
jmp 0x4edbee
cmp dword [edx], 0
je 0x4edd64
lea eax, [edx + 4]
jmp 0x4edd71
mov eax, dword [edi + 0x20]
mov esi, edx
lea edx, [esp + 0x18]
mov dword [edx + 0x20], eax
movups xmm0, xmmword [edi]
movups xmm1, xmmword [edi + 0x10]
movups xmmword [edx + 0x10], xmm1
movups xmmword [edx], xmm0
mov ecx, ebp
push dword [esp + 0xac]
push dword [esp + 0xac]
push esi
call fcn.004efa77
add esp, 0xc
jmp 0x4edde2
mov ebx, dword [esp + 0xa8]
mov ecx, ebx
mov edx, dword [esp + 0xac]
call fcn.004f05a1
test al, al
je 0x4edd45
mov ecx, edi
mov edx, str.file:___file:__
push 8
call fcn.004ebac3
pop eax
mov eax, ebx
mov ebx, edi
lea edi, [esp + 0x18]
mov byte [edi], 0
mov ecx, ebx
xor edx, edx
push dword [esp + 0xac]
push eax
jmp 0x4ed86b
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x38]
cmp ebx, eax
je 0x4edf8d
add ecx, eax
sub ebx, eax
mov esi, ecx
mov edx, ebx
call fcn.004f01e0
test al, al
je 0x4edc16
push 0x2f
pop edx
mov ecx, edi
call fcn.0044814f
mov ecx, edi
mov edx, esi
push ebx
call fcn.004ebac3
pop eax
jmp 0x4edc4a
mov ebx, dword [esp + 0xb4]
mov ecx, ebx
call fcn.004f1234
test eax, eax
je 0x4edc4a
mov esi, edx
mov ecx, edi
mov edx, eax
push esi
call fcn.004ebac3
pop eax
mov esi, dword [edi + 8]
mov cl, byte [ebx + 0x34]
mov dword [esp + 4], ecx
movups xmm0, xmmword [ebx + 0x35]
movups xmmword [esp + 0x64], xmm0
jmp 0x4edc55
mov dword [esp + 4], 0
push 7
pop esi
mov eax, dword [esp + 0x44]
add eax, 0xffffffdd
cmp eax, 0x1c
mov edx, dword [esp + 0xa8]
ja 0x4edc72
mov ecx, 0x10001001
bt ecx, eax
jb 0x4edc79
cmp dword [esp + 0x44], 0x5c
jne 0x4edc88
mov dword [esp + 0x40], edx
mov eax, dword [esp + 0xac]
mov dword [esp + 0x14], eax
lea ebx, [esp + 0x18]
mov byte [ebx], 0
mov ecx, edi
xor edx, edx
push dword [esp + 0x14]
push dword [esp + 0x44]
mov dword [esp + 0x10], esi
push esi
lea eax, [esp + 0x24]
push eax
call fcn.004eea19
add esp, 0x10
mov esi, edi
mov edi, edx
movzx ebp, byte [esp + 0xb0]
mov ecx, ebx
mov edx, esi
push edi
push eax
push 4
push ebp
call fcn.004efe05
add esp, 0x10
mov eax, dword [ebx]
cmp eax, 2
jne 0x4edce7
mov al, byte [esp + 0x1c]
mov ebx, dword [esp + 0x10]
mov byte [ebx + 4], al
mov dword [ebx], 2
jmp 0x4eddd8
mov ecx, dword [esi + 8]
mov ebx, dword [esp + 0x10]
mov dword [ebx + 0x1c], ecx
movsd xmm0, qword [esi]
movsd qword [ebx + 0x14], xmm0
movups xmm0, xmmword [esp + 0x64]
movups xmmword [ebx + 0x35], xmm0
mov dword [ebx], eax
mov eax, dword [esp + 0x1c]
mov dword [ebx + 4], eax
mov eax, dword [esp + 0x20]
mov dword [ebx + 8], eax
mov eax, dword [esp + 0x24]
mov dword [ebx + 0xc], eax
and word [ebx + 0x10], 0
mov dword [ebx + 0x20], 4
push 7
pop eax
mov dword [ebx + 0x24], eax
mov dword [ebx + 0x28], eax
mov eax, dword [esp + 8]
mov dword [ebx + 0x2c], eax
mov dword [ebx + 0x30], eax
mov eax, dword [esp + 4]
mov byte [ebx + 0x34], al
jmp 0x4edde2
mov edx, dword [esp + 0xb4]
cmp dword [edx], 0
mov dword [esp + 0x10], ebp
mov dword [esp], edi
je 0x4edea1
lea eax, [edx + 4]
jmp 0x4edeae
cmp dword [edx + 8], 0
je 0x4edf5f
lea eax, [edx + 0xc]
mov ecx, dword [edx + 0x14]
mov esi, edx
mov edx, dword [edx + 0x1c]
push dword [eax]
call fcn.004ed3d5
pop ecx
mov ebx, edx
mov ecx, edi
mov edx, eax
push ebx
call fcn.004ebac3
pop eax
mov ebx, edi
mov edi, dword [esi + 0x20]
movzx eax, byte [esp + 0xb0]
lea ecx, [esp + 0x18]
mov edx, ebx
push dword [esp + 0xac]
push dword [esp + 0xac]
mov dword [esp + 0x10], edi
push edi
push eax
call fcn.004efe05
add esp, 0x10
lea eax, [esp + 0x18]
mov eax, dword [eax]
cmp eax, 2
jne 0x4edded
mov al, byte [esp + 0x1c]
mov esi, ebx
mov byte [ebp + 4], al
mov dword [ebp], 2
mov ecx, dword [esi]
mov edx, dword [esi + 4]
call fcn.0044547d
add esp, 0x94
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, dword [ebx + 8]
mov dword [ebp + 0x1c], ecx
movsd xmm0, qword [ebx]
movsd qword [ebp + 0x14], xmm0
mov cl, byte [esi + 0x44]
mov byte [ebp + 0x44], cl
movups xmm0, xmmword [esi + 0x34]
movups xmmword [ebp + 0x34], xmm0
mov dword [ebp], eax
mov eax, dword [esp + 0x1c]
mov dword [ebp + 4], eax
mov eax, dword [esp + 0x20]
mov dword [ebp + 8], eax
mov eax, dword [esp + 0x24]
mov dword [ebp + 0xc], eax
mov eax, dword [esi + 0x10]
mov dword [ebp + 0x10], eax
mov eax, dword [esp + 8]
mov dword [ebp + 0x20], eax
mov eax, dword [esi + 0x24]
mov dword [ebp + 0x24], eax
mov eax, dword [esi + 0x28]
mov dword [ebp + 0x28], eax
mov eax, dword [esi + 0x2c]
mov dword [ebp + 0x2c], eax
mov eax, dword [esi + 0x30]
mov dword [ebp + 0x30], eax
jmp 0x4edde2
mov eax, dword [edx + 0x14]
mov esi, dword [edx + 0x1c]
mov ebx, edx
mov ecx, edi
mov edx, eax
push esi
call fcn.004ebac3
pop eax
mov eax, dword [edi + 8]
mov dword [ebp + 0x1c], eax
movsd xmm0, qword [edi]
movsd qword [ebp + 0x14], xmm0
movups xmm0, xmmword [ebx + 0x20]
movups xmm1, xmmword [ebx + 0x34]
movups xmmword [ebp + 0x34], xmm1
mov al, byte [ebx + 0x44]
mov byte [ebp + 0x44], al
mov eax, dword [ebx + 0x10]
mov ecx, dword [ebx]
mov edx, dword [ebx + 4]
mov dword [ebp], ecx
mov dword [ebp + 4], edx
and dword [ebp + 8], 0
mov ecx, dword [ebx + 0x30]
mov dword [ebp + 0x10], eax
movups xmmword [ebp + 0x20], xmm0
mov dword [ebp + 0x30], ecx
jmp 0x4edde2
cmp dword [edx + 8], 0
je 0x4edf6c
lea eax, [edx + 0xc]
mov ecx, dword [edx + 0x14]
mov edi, edx
mov edx, dword [edx + 0x1c]
push dword [eax]
call fcn.004ed3d5
pop ecx
mov ebx, edx
mov ebp, dword [esp]
mov ecx, ebp
mov edx, eax
push ebx
call fcn.004ebac3
pop eax
mov ebx, dword [edi + 0x30]
mov ecx, ebp
xor edx, edx
push ebx
call fcn.004f029e
pop eax
lea eax, [esp + 0x18]
mov byte [eax], 1
mov ecx, ebp
xor edx, edx
push dword [esp + 0xac]
push dword [esp + 0xac]
push ebx
push esi
call fcn.004eea19
add esp, 0x10
mov ecx, dword [ebp + 0x20]
lea esi, [esp + 0x18]
mov dword [esi + 0x20], ecx
movups xmm0, xmmword [ebp]
movups xmm1, xmmword [ebp + 0x10]
movups xmmword [esi + 0x10], xmm1
movups xmmword [esi], xmm0
movups xmm0, xmmword [edi + 0x20]
lea ecx, [edi + 0x34]
mov esi, dword [edi + 0x10]
movzx ebp, word [edi + 0x12]
sub esp, 0x2c
mov dword [esp + 0x28], edx
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], ebx
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], ecx
movups xmmword [esp + 4], xmm0
and dword [esp], 0
mov ecx, dword [esp + 0x3c]
lea edx, [esp + 0x44]
call fcn.004ef06a
add esp, 0x2c
jmp 0x4edde2
mov eax, dword [edx + 0x14]
mov ebx, dword [edx + 0x1c]
mov esi, edx
jmp 0x4edd83
mov eax, dword [edx + 0x14]
mov ebx, dword [edx + 0x1c]
mov edi, edx
jmp 0x4edec0
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x60]
add ecx, eax
sub ebx, eax
mov edi, dword [esp]
jmp 0x4edbf2
push 0x2b
pop edx
mov ecx, str.called__Option::unwrap____on_a__None__valueNoneSome
push 0x570350
jmp 0x4edfa9
push 0x2b
pop edx
mov ecx, str.called__Option::unwrap____on_a__None__valueNoneSome
push 0x570340
call fcn.00506cd0
pop eax
ud2