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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x98
mov edi, edx
mov dword [esp + 0x50], ecx
mov ebx, dword [esp + 0xb0]
mov ebp, dword [esp + 0xac]
push 0x2f
pop esi
mov ecx, edx
mov edx, esi
call fcn.0044814f
mov ecx, edi
mov edx, esi
call fcn.0044814f
mov eax, dword [edi + 8]
mov dword [esp + 0x60], eax
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x40], ebx
lea eax, [esp + 0x14]
mov dword [esp], ebp
mov dword [eax], ebp
mov dword [esp + 4], ebx
mov dword [eax + 4], ebx
mov esi, dword [edi + 0x18]
mov dword [esp + 0x10], edi
mov edi, dword [edi + 0x1c]
mov dword [esp + 0xc], 0
xor ebp, ebp
lea ecx, [esp + 0x14]
call fcn.004ed287
cmp eax, 0x40
je 0x4ee06f
cmp eax, 0x5c
je 0x4ee0a0
cmp eax, 0x23
je 0x4ee0ad
cmp eax, 0x2f
je 0x4ee0ad
cmp eax, 0x110000
je 0x4ee0ad
cmp eax, 0x3f
jne 0x4ee0aa
jmp 0x4ee0ad
test esi, esi
je 0x4ee08c
xor eax, eax
cmp dword [esp + 0xc], 0
setne al
lea eax, [eax*8 + 2]
push eax
push esi
call dword [edi + 0x14]
add esp, 8
mov eax, dword [esp + 0x14]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 8], eax
mov ebx, ebp
jmp 0x4ee0aa
cmp byte [esp + 0xb4], 2
jne 0x4ee0ad
inc ebp
jmp 0x4ee044
mov ecx, dword [esp + 0x60]
mov edi, dword [esp + 0xc]
test edi, edi
je 0x4ee23f
test ebx, ebx
je 0x4ee1f3
mov eax, ebx
mov dword [esp + 0x30], 0
mov dword [esp + 0x2c], 0
mov dword [esp], 0
mov ebx, dword [esp + 8]
mov esi, eax
test esi, esi
jle 0x4ee1c8
mov ebp, ecx
lea ecx, [esp + 0x74]
lea edx, [esp + 0x3c]
call fcn.004efbcf
mov eax, dword [esp + 0x74]
cmp eax, 0x110000
je 0x4ee9d9
mov edi, dword [esp + 0x78]
mov ecx, dword [esp + 0x7c]
cmp eax, 0x3a
jne 0x4ee11e
cmp dword [esp + 0x2c], 0
je 0x4ee182
cmp byte [esp + 0x30], 0
mov dword [esp + 4], ecx
mov ecx, dword [esp]
movzx ecx, cl
mov edx, 1
cmove ecx, edx
mov dword [esp], ecx
mov ebx, dword [esp + 0x10]
mov ecx, dword [ebx + 0x18]
mov edx, dword [ebx + 0x1c]
push dword [esp + 0x40]
push dword [esp + 0x40]
push eax
call fcn.004efc55
add esp, 0xc
mov dword [esp + 0x74], edi
mov eax, dword [esp + 4]
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], 0x570880
mov ecx, ebx
mov ebx, dword [esp + 8]
lea edx, [esp + 0x74]
call fcn.0046d1c7
dec esi
mov ecx, ebp
mov edi, dword [esp + 0xc]
jmp 0x4ee0e4
lea edx, [esi - 1]
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 8]
mov eax, edx
xor edx, edx
inc edx
mov dword [esp + 0x2c], edx
cmp esi, 1
mov edi, dword [esp + 0xc]
jbe 0x4ee0e2
mov esi, ecx
mov ecx, dword [esp + 0x10]
push 0x3a
pop edx
mov ebp, eax
call fcn.0044814f
mov eax, ebp
mov ecx, esi
mov dl, 1
mov dword [esp + 0x30], edx
xor edx, edx
inc edx
mov dword [esp + 0x2c], edx
jmp 0x4ee0e2
cmp dword [esp + 0x2c], 0
jne 0x4ee1d6
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 8]
mov eax, dword [esp]
and al, 1
or al, byte [esp + 0x30]
je 0x4ee246
push 0x40
pop edx
mov esi, ecx
mov ecx, dword [esp + 0x10]
call fcn.0044814f
mov ecx, esi
jmp 0x4ee246
lea esi, [esp + 0x74]
mov ecx, esi
mov edx, edi
mov ebx, dword [esp + 8]
push ebx
call fcn.004efdd9
pop eax
mov eax, dword [esi]
lea ecx, [eax - 0x23]
cmp ecx, 0x1c
ja 0x4ee229
mov edx, 0x10001001
bt edx, ecx
jae 0x4ee229
mov dword [esp], 0
mov dword [esp + 4], ebx
xor ecx, ecx
jmp 0x4ee23f
cmp eax, 0x110000
jne 0x4ee66d
mov dword [esp + 4], ebx
mov dword [esp], edi
mov ecx, dword [esp + 0x60]
mov ebx, dword [esp + 4]
mov edi, dword [esp]
test edi, edi
je 0x4ee37e
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 8]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x54], edi
mov dword [esp + 0x58], ebx
mov al, byte [esp + 0xb4]
movzx edx, al
mov dword [esp + 0x30], edx
test al, al
mov dword [esp + 0x70], ecx
lea esi, [esp + 0x14]
je 0x4ee38a
mov dword [esi], edi
mov dword [esi + 4], ebx
mov dword [esp + 0xc], edi
sub ebx, edi
mov dword [esp + 8], ebx
xor ebp, ebp
xor edi, edi
inc edi
xor ebx, ebx
mov dword [esp], 0
mov dword [esp + 4], 0
mov ecx, esi
call fcn.00444cca
lea ecx, [eax - 9]
cmp ecx, 2
jb 0x4ee2f6
cmp eax, 0xd
je 0x4ee2f6
cmp eax, 0x3a
je 0x4ee2fd
cmp eax, 0x5b
je 0x4ee306
cmp eax, 0x5c
je 0x4ee30f
cmp eax, 0x5d
je 0x4ee31c
cmp eax, 0x23
je 0x4ee33b
cmp eax, 0x2f
je 0x4ee33b
cmp eax, 0x110000
je 0x4ee33b
cmp eax, 0x3f
je 0x4ee33b
inc ebx
cmp eax, 0x80
jb 0x4ee325
cmp eax, 0x800
jae 0x4ee32e
push 2
pop eax
jmp 0x4ee327
mov al, 1
mov dword [esp], eax
jmp 0x4ee325
test byte [esp + 4], 1
jne 0x4ee319
jmp 0x4ee33b
inc ebx
mov al, 1
mov dword [esp + 4], eax
jmp 0x4ee325
cmp byte [esp + 0xb4], 2
jne 0x4ee33b
inc ebx
jmp 0x4ee325
inc ebx
mov dword [esp + 4], 0
mov eax, edi
add ebp, eax
jmp 0x4ee2a4
cmp eax, 0x10000
push 4
pop eax
sbb eax, 0
jmp 0x4ee327
test byte [esp], 1
jne 0x4ee3f3
lea eax, [esp + 0x54]
lea esi, [esp + 0x14]
mov dword [esi], eax
mov dword [esi + 4], ebx
mov ecx, esi
call fcn.004f0589
cmp eax, 0x110000
jne 0x4ee352
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 8]
push 0x5703b8
push ebp
call fcn.004ed3e6
pop ecx
pop ecx
mov edi, eax
mov esi, edx
jmp 0x4ee409
mov eax, dword [esp + 0x50]
mov byte [eax + 4], cl
jmp 0x4ee90f
mov ecx, esi
mov edx, edi
push ebx
call fcn.004f03e9
pop eax
mov bl, byte [esi]
cmp byte [esi + 0xc], 2
je 0x4ee908
movzx eax, bl
lea esi, [esp + 0x14]
movzx ebx, byte [esi + 3]
movzx ecx, word [esi + 1]
shl ecx, 8
shl ebx, 0x18
or ebx, ecx
or ebx, eax
mov edi, dword [esi + 4]
mov eax, dword [esi + 0x10]
mov dword [esp + 0xc], eax
mov ebp, dword [esi + 0x14]
mov ecx, esi
mov edx, ebx
push dword [esi + 8]
call fcn.004ec731
pop eax
mov dl, byte [esi]
cmp dl, 3
jne 0x4ee5d1
mov al, byte [esp + 0x15]
mov ecx, ebx
mov ebx, eax
mov edx, edi
call fcn.0044547d
jmp 0x4ee908
lea esi, [esp + 0x64]
lea edx, [esp + 0x54]
mov ecx, esi
push ebx
call fcn.004ec694
pop eax
mov edi, dword [esi]
mov esi, dword [esi + 8]
cmp byte [esp + 0xb4], 1
je 0x4ee47d
cmp dword [esp + 0x30], 2
jne 0x4ee485
mov ecx, edi
mov edx, esi
push 0x5b
call fcn.00444c73
pop ecx
test al, al
je 0x4ee500
mov ecx, edi
mov edx, esi
push 0x5d
call fcn.00444cb7
pop ecx
mov dl, 3
test al, al
je 0x4ee689
mov eax, esi
dec eax
mov ecx, edi
mov edx, esi
push 0x5700bc
push eax
call fcn.004ecea2
pop ecx
pop ecx
mov esi, edx
lea ebx, [esp + 0x14]
mov ecx, ebx
mov edx, eax
push esi
call fcn.004ecedf
pop eax
cmp byte [ebx], 0
je 0x4ee97f
mov bl, byte [esp + 0x15]
mov dl, 3
jmp 0x4ee68b
test esi, esi
je 0x4ee62d
lea ebx, [esp + 0x14]
mov ecx, ebx
mov edx, edi
push esi
call fcn.004ec731
pop eax
mov dl, byte [ebx]
cmp dl, 3
jne 0x4ee4a6
mov bl, byte [esp + 0x15]
mov dl, 3
jmp 0x4ee68b
mov bl, byte [esp + 0x15]
movzx eax, word [esp + 0x16]
mov word [esp + 0x36], ax
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0xc], eax
mov ebp, dword [esp + 0x58]
test byte [esp], 1
je 0x4ee6ad
mov dword [esp], esi
mov esi, edx
mov edx, dword [esp + 0x68]
mov ecx, edi
call fcn.0044547d
mov edx, esi
mov esi, dword [esp]
jmp 0x4ee6ad
mov eax, edi
add eax, esi
lea ebx, [esp + 0x1c]
mov dword [ebx - 8], edi
mov dword [ebx - 4], esi
mov dword [esp + 0x38], edi
mov dword [ebx], edi
mov dword [ebx + 4], eax
and dword [ebx + 8], 0
mov edi, 0x4800013
mov ebp, 0x3a801
mov ecx, ebx
call fcn.0041858e
lea eax, [edx - 0x2f]
cmp eax, 0x11
ja 0x4ee53d
bt ebp, eax
jb 0x4ee5c4
lea eax, [edx - 9]
cmp eax, 0x1a
ja 0x4ee54a
bt edi, eax
jb 0x4ee5c4
lea eax, [edx - 0x5b]
cmp eax, 4
jb 0x4ee5c4
test edx, edx
je 0x4ee5c4
cmp edx, 0x7c
je 0x4ee5c4
cmp edx, 0x110000
jne 0x4ee525
lea edi, [esp + 0x3c]
mov dword [edi], 1
and dword [edi + 4], 0
and dword [edi + 8], 0
lea ebx, [esp + 0x14]
mov eax, dword [esp + 0x38]
mov dword [ebx], eax
mov dword [ebx + 4], esi
mov dword [ebx + 8], 0x5704e8
mov ecx, ebx
call fcn.0046ceac
test eax, eax
je 0x4ee9ae
push edx
push eax
push edi
call fcn.0047fe83
add esp, 0xc
test al, al
je 0x4ee589
push 0x37
pop edx
mov ecx, str.a_Display_implementation_returned_an_error_unexpectedly
push 0x56ff30
push 0x56ffa0
push ebx
call fcn.00506fb0
add esp, 0xc
ud2
mov dl, 3
mov bl, 5
mov edi, dword [esp + 0x38]
jmp 0x4ee68b
mov dword [esp + 0x38], edi
mov cl, byte [esp + 0x15]
movups xmm0, xmmword [esp + 0x16]
movups xmmword [esp + 0x3e], xmm0
movzx eax, word [esp + 0x26]
mov word [esp + 0x4e], ax
mov byte [esp + 0x3c], dl
mov dword [esp], ecx
mov byte [esp + 0x3d], cl
test dl, dl
jne 0x4ee633
lea ecx, [esp + 0x40]
mov esi, edx
call fcn.004f0573
mov edx, esi
test al, al
je 0x4ee633
lea ecx, [esp + 0x3c]
call fcn.004ed419
xor esi, esi
inc esi
xor edi, edi
mov dword [esp + 4], 0
mov dword [esp + 8], 0
jmp 0x4ee65b
mov dl, 3
xor ebx, ebx
jmp 0x4ee68b
mov edi, edx
movzx eax, word [esp + 0x3e]
mov word [esp + 0x36], ax
mov esi, dword [esp + 0x40]
mov eax, dword [esp + 0x44]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x5c], eax
mov ecx, ebx
mov edx, dword [esp + 0x38]
call fcn.0044547d
mov ebx, dword [esp]
mov edx, edi
jmp 0x4ee6ad
cmp byte [esp + 0xb4], 2
je 0x4ee234
cmp eax, 0x5c
je 0x4ee21a
jmp 0x4ee234
mov bl, 4
test byte [esp], 1
je 0x4ee6a4
mov ecx, edi
mov edi, esi
mov esi, edx
mov edx, dword [esp + 0x68]
call fcn.0044547d
mov edx, esi
mov esi, edi
cmp dl, 3
je 0x4ee908
lea edi, [esp + 0x3c]
movzx eax, word [esp + 0x36]
mov word [edi + 2], ax
mov dword [edi + 4], esi
mov eax, dword [esp + 8]
mov dword [edi + 8], eax
mov eax, dword [esp + 4]
mov dword [edi + 0xc], eax
mov eax, dword [esp + 0x5c]
mov dword [edi + 0x10], eax
mov byte [edi], dl
mov byte [edi + 1], bl
lea ecx, [esp + 0x64]
mov dword [esp + 0x14], 0x570f18
xor eax, eax
inc eax
mov dword [esp + 0x18], eax
and dword [esp + 0x24], 0
mov dword [ecx], edi
mov dword [ecx + 4], 0x4ec227
mov dword [esp + 0x1c], ecx
mov dword [esp], eax
mov dword [esp + 0x20], eax
lea eax, [esp + 0x14]
push eax
mov esi, dword [esp + 0x14]
push esi
call fcn.004ec44b
pop ecx
pop edx
movzx ecx, al
mov edx, 0x570380
call fcn.004f02de
mov esi, dword [esi + 8]
cmp byte [edi], 0
jne 0x4ee75c
cmp dword [esp + 0x48], 0
jne 0x4ee75c
mov ecx, dword [esp + 0xc]
mov edx, ebp
push 1
push 0x5702e5
call fcn.004ed51f
pop ecx
pop edx
xor ebx, ebx
cmp byte [esp + 0xb4], 2
jne 0x4ee8ff
test al, al
jne 0x4ee8ff
mov dword [esp + 4], esi
mov ecx, dword [esp + 0xc]
mov edx, ebp
push 0x3a
call fcn.004ee9ee
pop ecx
xor edi, edi
test eax, eax
je 0x4ee82c
mov ecx, dword [esp + 0x10]
mov cl, byte [ecx + 0x20]
mov byte [esp + 8], cl
lea esi, [esp + 0x14]
mov ecx, edx
mov edx, eax
mov eax, ecx
xor ebx, ebx
mov ecx, esi
mov dword [esp + 0xc], edx
mov ebp, eax
push eax
call fcn.004efdd9
pop eax
mov eax, dword [esp + 0x14]
cmp eax, 0x110000
je 0x4ee7f2
lea ecx, [eax - 0x30]
cmp ecx, 0xa
jae 0x4ee7d0
imul eax, edi, 0xa
add ecx, eax
cmp ecx, 0xffff
ja 0x4ee8fd
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov bl, 1
mov edi, ecx
jmp 0x4ee78f
cmp byte [esp + 8], 0
jne 0x4ee7f2
lea ecx, [eax - 0x23]
cmp ecx, 0x1c
ja 0x4ee7e9
mov edx, 0x10001001
bt edx, ecx
jb 0x4ee7f2
cmp eax, 0x5c
jne 0x4ee8fd
test bl, 1
je 0x4ee82c
mov eax, dword [esp + 0x10]
mov ecx, dword [eax]
mov edx, dword [eax + 8]
push 0x5703a8
push dword [esp + 0xbc]
call fcn.004ed3e6
pop ecx
pop ecx
mov ecx, eax
call fcn.004ed34e
test ax, ax
je 0x4ee92e
cmp dx, di
jne 0x4ee92e
mov dword [esp], 0
mov eax, dword [esp + 0x4c]
lea edx, [esp + 0x14]
mov dword [edx + 0x10], eax
movups xmm0, xmmword [esp + 0x3c]
movups xmmword [edx], xmm0
lea esi, [esp + 0x7c]
mov ecx, esi
call fcn.004ec6f2
mov bl, byte [esi]
movups xmm0, xmmword [esi + 1]
movups xmmword [esp + 0x3c], xmm0
mov eax, dword [esp + 0x2c]
cmp dword [esp + 0x60], eax
je 0x4ee877
test bl, bl
jne 0x4ee877
mov eax, dword [esp + 0x50]
mov byte [eax + 4], 0
jmp 0x4ee90f
mov esi, dword [esp + 0x10]
mov eax, dword [esi + 8]
mov dword [esp + 8], eax
lea eax, [esp + 0x74]
mov byte [eax], 1
mov ecx, esi
mov edx, dword [esp + 0x30]
push ebp
push dword [esp + 0x10]
push eax
call fcn.004f0304
add esp, 0xc
mov ebp, edx
mov ecx, dword [esi + 0x20]
lea edx, [esp + 0x74]
mov dword [edx + 0x20], ecx
movups xmm0, xmmword [esi]
movups xmm1, xmmword [esi + 0x10]
movups xmmword [edx + 0x10], xmm1
movups xmmword [edx], xmm0
mov byte [esp + 0x14], bl
movups xmm0, xmmword [esp + 0x3c]
movups xmmword [esp + 0x15], xmm0
mov ecx, dword [esp + 0x50]
push ebp
push eax
push dword [esp + 0x10]
push edi
push dword [esp + 0x10]
lea eax, [esp + 0x28]
push eax
push dword [esp + 0x1c]
push dword [esp + 0x48]
push dword [esp + 0x90]
push dword [esp + 0xdc]
push dword [esp + 0x58]
call fcn.004ef06a
add esp, 0x2c
jmp 0x4ee923
mov bl, 2
lea ecx, [esp + 0x3c]
call fcn.004ed419
mov eax, dword [esp + 0x50]
mov byte [eax + 4], bl
mov dword [eax], 2
mov eax, dword [esp + 0x10]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
call fcn.0044547d
add esp, 0x98
pop esi
pop edi
pop ebx
pop ebp
ret
lea eax, [esp + 0x54]
mov word [eax], di
mov dword [esp + 0x14], 0x570390
xor ecx, ecx
inc ecx
mov dword [esp + 0x18], ecx
and dword [esp + 0x24], 0
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], fcn.00424db0
lea eax, [esp + 0x64]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], ecx
push esi
push dword [esp + 0x14]
call fcn.004ec44b
pop ecx
pop edx
movzx ecx, al
mov edx, 0x570398
call fcn.004f02de
jmp 0x4ee833
mov bl, byte [esp + 0x15]
movzx eax, word [esp + 0x16]
mov word [esp + 0x36], ax
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 4], eax
movzx eax, byte [esp + 0x24]
mov dword [esp + 0x5c], eax
mov dl, 2
jmp 0x4ee9c8
mov esi, dword [esp + 0x3c]
mov eax, dword [esp + 0x40]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 4], eax
xor edx, edx
mov edi, dword [esp + 0x38]
mov eax, dword [esp + 0x54]
mov dword [esp + 0xc], eax
mov ebp, dword [esp + 0x58]
jmp 0x4ee68b
push 0x2b
pop edx
mov ecx, str.called__Option::unwrap____on_a__None__valueNoneSome
push 0x570370
call fcn.00506cd0
pop eax
ud2