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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x98
mov edi, edx
mov edx, dword [esp + 0xac]
mov ebp, ecx
lea esi, [esp + 0x14]
mov ecx, esi
push dword [esp + 0xb0]
call fcn.0049ac3b
pop eax
mov ebx, dword [esi]
mov edx, dword [esi + 4]
mov eax, dword [esi + 8]
cmp ebx, 0x5c
je 0x498439
cmp ebx, 0x2f
jne 0x4984e1
mov dword [esp], edi
mov edi, dword [edi + 0x18]
cmp ebx, 0x5c
mov dword [esp + 0xc], ebp
jne 0x498463
test edi, edi
je 0x498463
mov ebp, eax
mov eax, dword [esp]
mov eax, dword [eax + 0x1c]
push 0
push edi
mov esi, edx
call dword [eax + 0x14]
mov eax, ebp
mov edx, esi
add esp, 8
lea ebp, [esp + 0x14]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov ecx, ebp
push eax
call fcn.0049ac3b
pop eax
mov eax, dword [ebp]
mov esi, dword [ebp + 4]
mov ebp, dword [ebp + 8]
cmp eax, 0x2f
je 0x49848f
cmp eax, 0x5c
jne 0x498536
cmp eax, 0x5c
jne 0x4984a7
test edi, edi
je 0x4984a7
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, 0x50788c
push 7
call fcn.004961e2
pop eax
lea edi, [esp + 0x14]
mov edx, esi
mov ecx, edi
push ebp
call fcn.0049b165
pop eax
mov esi, dword [edi]
cmp esi, 0x80000000
jne 0x498603
mov bl, byte [esp + 0x18]
mov ebp, dword [esp + 0xc]
jmp 0x49864d
mov edx, dword [esp + 0xb8]
test edx, edx
je 0x498658
cmp ebx, 0x23
je 0x4989ab
cmp ebx, 0x3f
je 0x4989d8
cmp ebx, 0x110000
jne 0x4989e9
cmp dword [edx + 8], 0
je 0x498b3d
mov ecx, dword [edx + 0x14]
mov ebx, edx
mov edx, dword [edx + 0x18]
push 0x507874
push dword [ebx + 0xc]
call fcn.0049a251
pop ecx
pop ecx
mov esi, edx
jmp 0x498b45
mov edi, dword [esp]
mov edx, 0x50788c
mov ecx, edi
push 7
call fcn.004961e2
pop eax
mov ecx, dword [esp + 8]
mov edx, dword [esp + 4]
call fcn.0049b369
mov ecx, dword [esp + 0xb8]
xor edx, edx
test ecx, ecx
push 7
pop esi
je 0x498956
mov ebp, dword [esp + 0xc]
test al, al
jne 0x498a54
call fcn.00497ae1
mov ecx, eax
push 0x2f
call fcn.00496cab
pop ecx
test eax, eax
je 0x498d5d
lea edi, [esp + 0x14]
mov esi, edx
mov edx, eax
mov ecx, edi
push 0x2f
push esi
call fcn.004976bd
pop eax
pop ecx
cmp dword [edi], 0x110000
je 0x498d5d
push 0xa
pop ecx
lea eax, [esp + 0x68]
lea esi, [esp + 0x14]
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
call fcn.00496663
test eax, eax
je 0x498d67
mov ecx, eax
mov edi, eax
mov esi, edx
call fcn.0049af86
test al, al
je 0x49895f
push 0x2f
pop edx
mov dword [esp + 0x10], esi
mov esi, dword [esp]
mov ecx, esi
call fcn.00496b97
mov edx, edi
mov edi, esi
mov ecx, esi
push dword [esp + 0x10]
call fcn.004961e2
pop eax
jmp 0x498a4f
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x28]
mov edi, dword [esp + 0x18]
mov ebp, dword [esp + 0x24]
test eax, eax
mov dword [esp + 8], ecx
je 0x4986f7
lea ebx, [esp + 0x14]
mov dword [esp + 4], ebp
mov edx, edi
mov ecx, ebx
push eax
call fcn.00496ff3
pop eax
mov al, byte [ebx]
mov ebp, dword [esp + 0xc]
cmp al, 3
jne 0x498706
mov bl, byte [esp + 0x15]
mov ecx, esi
mov edx, edi
call fcn.0049bc49
mov esi, dword [esp]
mov byte [ebp + 4], bl
jmp 0x498c18
mov ecx, edi
mov edx, str.file:___file:__
push 8
call fcn.004961e2
pop eax
mov ebx, edi
lea edi, [esp + 0x14]
xor edx, edx
mov ecx, ebx
mov byte [edi], 0
push dword [esp + 0xb0]
push dword [esp + 0xb0]
push 7
push esi
call fcn.00499832
add esp, 0x10
mov esi, edx
mov ecx, edi
mov edx, ebx
push esi
push eax
push 4
push 0
call fcn.0049ac67
add esp, 0x10
mov eax, dword [edi]
cmp eax, 2
je 0x498c0f
mov edi, dword [ebx + 8]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov esi, dword [esp + 0x20]
movsd xmm0, qword [ebx]
mov dword [ebp + 0x18], edi
movsd qword [ebp + 0x10], xmm0
mov dword [ebp], eax
mov dword [ebp + 4], ecx
mov dword [ebp + 8], edx
mov dword [ebp + 0xc], esi
and word [ebp + 0x1c], 0
mov dword [ebp + 0x20], 4
push 7
pop eax
mov dword [ebp + 0x24], eax
mov dword [ebp + 0x28], eax
mov dword [ebp + 0x2c], eax
mov dword [ebp + 0x30], eax
mov byte [ebp + 0x34], 0
jmp 0x498c29
xor ebx, ebx
mov dword [esp + 0x10], 0
jmp 0x4987fa
movsd xmm0, qword [esp + 0x16]
movsd xmm1, qword [esp + 0x1e]
movzx edx, word [esp + 0x26]
mov cl, byte [esp + 0x15]
test al, al
movsd qword [esp + 0x3e], xmm0
movsd qword [esp + 0x46], xmm1
mov word [esp + 0x4e], dx
mov byte [esp + 0x3c], al
mov byte [esp + 0x3d], cl
jne 0x498762
lea ecx, [esp + 0x40]
call fcn.0049b2f5
test al, al
je 0x498762
lea ecx, [esp + 0x3c]
mov byte [esp + 0x57], 0
call fcn.00496fdf
xor ebx, ebx
mov dword [esp + 0x10], 0
jmp 0x4987f6
mov eax, dword [esp + 0x4c]
movsd xmm0, qword [esp + 0x3c]
movsd xmm1, qword [esp + 0x44]
lea ecx, [esp + 0x68]
mov dword [esp + 0x14], 0x507740
mov dword [ecx + 0x10], eax
lea eax, [esp + 0x90]
movsd qword [ecx + 8], xmm1
movsd qword [ecx], xmm0
mov dword [eax], ecx
xor ecx, ecx
mov dword [eax + 4], 0x496960
inc ecx
mov dword [esp + 0x18], ecx
and dword [esp + 0x24], 0
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], ecx
push ebx
push dword [esp + 4]
call fcn.00496b73
pop ecx
pop edx
test al, al
jne 0x498d71
mov eax, dword [esp + 0x78]
movsd xmm0, qword [esp + 0x68]
movsd xmm1, qword [esp + 0x70]
lea ebp, [esp + 0x57]
lea edx, [esp + 0x14]
mov ecx, ebp
mov dword [edx + 0x10], eax
movsd qword [edx + 8], xmm1
movsd qword [edx], xmm0
call fcn.00496fa1
mov bl, byte [ebp]
mov al, 1
mov dword [esp + 0x10], eax
mov ebp, dword [esp + 4]
movsd xmm0, qword [esp + 0x58]
movsd xmm1, qword [esp + 0x60]
mov ecx, esi
mov edx, edi
movsd qword [esp + 0x70], xmm1
movsd qword [esp + 0x68], xmm0
call fcn.0049bc49
mov esi, dword [esp]
test bl, bl
mov dword [esp + 0x50], ebx
setne byte [esp + 0x3c]
cmp byte [esp + 0x10], 0
mov edi, dword [esi + 8]
mov dword [esp + 4], edi
je 0x49884f
lea eax, [esp + 0x3c]
xor edx, edx
mov ecx, esi
push dword [esp + 8]
push ebp
push eax
call fcn.0049b080
add esp, 0xc
jmp 0x498870
push 0x2f
pop edx
mov ecx, esi
call fcn.00496b97
lea eax, [esp + 0x3c]
xor edx, edx
mov ecx, esi
push dword [esp + 8]
push ebp
push edi
push eax
call fcn.00499832
add esp, 0x10
cmp byte [esp + 0x3c], 0
mov esi, eax
mov edi, edx
je 0x498880
mov ebp, dword [esp]
jmp 0x4988ae
mov ebp, dword [esp]
lea ebx, [esp + 0x14]
mov ecx, ebx
mov edx, ebp
push dword [esp + 4]
push 7
call fcn.00496e6c
pop eax
pop ecx
mov ecx, ebx
call fcn.0040b850
push 7
pop eax
mov dword [esp + 4], eax
mov dword [esp + 0x50], 0
movzx eax, byte [esp + 0xb4]
lea ebx, [esp + 0x14]
mov edx, ebp
mov ecx, ebx
push edi
push esi
push 4
push eax
call fcn.0049ac67
add esp, 0x10
mov eax, dword [ebx]
cmp eax, 2
jne 0x4988ea
mov al, byte [esp + 0x18]
mov ecx, dword [esp + 0xc]
mov esi, ebp
mov byte [ecx + 4], al
mov dword [ecx], 2
jmp 0x498c1f
mov ecx, dword [ebp + 8]
mov edx, dword [esp + 0xc]
movsd xmm0, qword [ebp]
movsd xmm2, qword [esp + 0x68]
movsd xmm1, qword [esp + 0x70]
mov dword [edx + 0x18], ecx
movsd qword [edx + 0x10], xmm0
movsd qword [edx + 0x35], xmm2
movsd qword [edx + 0x3d], xmm1
mov dword [edx], eax
mov eax, dword [esp + 0x18]
mov dword [edx + 4], eax
mov eax, dword [esp + 0x1c]
mov dword [edx + 8], eax
mov eax, dword [esp + 0x20]
mov dword [edx + 0xc], eax
and word [edx + 0x1c], 0
mov dword [edx + 0x20], 4
push 7
pop eax
mov dword [edx + 0x24], eax
mov dword [edx + 0x28], eax
mov eax, dword [esp + 4]
mov dword [edx + 0x2c], eax
mov dword [edx + 0x30], eax
mov eax, dword [esp + 0x50]
mov byte [edx + 0x34], al
jmp 0x498c29
mov ebp, dword [esp + 0xc]
jmp 0x498a54
mov ecx, dword [esp + 0xb8]
call fcn.0049b3fb
test eax, eax
je 0x498a4c
mov edi, dword [esp]
mov esi, edx
mov edx, eax
mov ecx, edi
push esi
call fcn.004961e2
pop eax
mov eax, dword [esp + 0xb8]
mov esi, dword [edi + 8]
movsd xmm0, qword [eax + 0x3d]
movsd xmm1, qword [eax + 0x35]
mov dl, byte [eax + 0x34]
movsd qword [esp + 0x44], xmm0
movsd qword [esp + 0x3c], xmm1
jmp 0x498a54
push 9
pop ecx
mov eax, edx
lea edx, [esp + 0x14]
mov esi, edi
mov edi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, ebp
push dword [esp + 0xb0]
push dword [esp + 0xb0]
push eax
call fcn.0049a809
add esp, 0xc
jmp 0x498c29
cmp dword [edx], 0
je 0x498bab
lea eax, [edx + 4]
jmp 0x498bb8
mov ebx, dword [esp + 0xac]
mov edx, dword [esp + 0xb0]
mov ecx, ebx
call fcn.0049b369
test al, al
je 0x498a2d
mov ecx, edi
mov edx, str.file:___file:__
push 8
call fcn.004961e2
pop eax
mov eax, ebx
mov ebx, edi
lea edi, [esp + 0x14]
xor edx, edx
mov ecx, ebx
mov byte [edi], 0
push dword [esp + 0xb0]
push eax
jmp 0x498682
mov ebx, dword [esp + 0xb8]
mov dword [esp + 0xc], ebp
mov dword [esp], edi
cmp dword [ebx], 0
je 0x498c9c
lea eax, [ebx + 4]
jmp 0x498ca9
mov edi, dword [esp]
xor edx, edx
push 7
pop esi
mov eax, dword [esp + 0xac]
mov ecx, dword [esp + 0xb0]
cmp ebx, 0x2f
mov dword [esp + 0x10], edx
je 0x498a75
cmp ebx, 0x3f
je 0x498a75
cmp ebx, 0x5c
jne 0x498a7d
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
lea eax, [esp + 0x14]
mov ecx, edi
xor edx, edx
mov byte [eax], 0
push dword [esp + 4]
push dword [esp + 0xc]
push esi
lea eax, [esp + 0x20]
push eax
call fcn.00499832
add esp, 0x10
movzx ebx, byte [esp + 0xb4]
mov dword [esp + 8], esi
mov esi, edi
mov edi, edx
lea ecx, [esp + 0x14]
mov edx, esi
push edi
push eax
push 4
push ebx
call fcn.0049ac67
add esp, 0x10
lea eax, [esp + 0x14]
mov eax, dword [eax]
cmp eax, 2
jne 0x498ad5
mov al, byte [esp + 0x18]
jmp 0x498c15
mov ecx, dword [esi + 8]
movsd xmm0, qword [esi]
movsd xmm2, qword [esp + 0x3c]
movsd xmm1, qword [esp + 0x44]
mov dword [ebp + 0x18], ecx
movsd qword [ebp + 0x10], xmm0
movsd qword [ebp + 0x35], xmm2
movsd qword [ebp + 0x3d], xmm1
mov dword [ebp], eax
mov eax, dword [esp + 0x18]
mov dword [ebp + 4], eax
mov eax, dword [esp + 0x1c]
mov dword [ebp + 8], eax
mov eax, dword [esp + 0x20]
mov dword [ebp + 0xc], eax
and word [ebp + 0x1c], 0
mov dword [ebp + 0x20], 4
push 7
pop eax
mov dword [ebp + 0x24], eax
mov dword [ebp + 0x28], eax
mov eax, dword [esp + 8]
mov dword [ebp + 0x2c], eax
mov dword [ebp + 0x30], eax
mov eax, dword [esp + 0x10]
mov byte [ebp + 0x34], al
jmp 0x498c29
mov eax, dword [edx + 0x14]
mov esi, dword [edx + 0x18]
mov ebx, edx
mov ecx, edi
mov edx, eax
push esi
call fcn.004961e2
pop eax
movsd xmm0, qword [edi]
mov eax, dword [edi + 8]
mov edx, dword [ebx]
mov ecx, dword [ebx + 4]
movsd qword [ebp + 0x10], xmm0
movsd xmm0, qword [ebx + 0x3c]
mov dword [ebp + 0x18], eax
mov al, byte [ebx + 0x44]
movsd qword [ebp + 0x3c], xmm0
movsd xmm0, qword [ebx + 0x34]
mov byte [ebp + 0x44], al
movsd qword [ebp + 0x34], xmm0
mov dword [ebp], edx
mov dword [ebp + 4], ecx
mov edx, dword [ebx + 0x1c]
mov ecx, dword [ebx + 0x20]
and dword [ebp + 8], 0
mov dword [ebp + 0x1c], edx
mov dword [ebp + 0x20], ecx
mov edx, dword [ebx + 0x24]
mov ecx, dword [ebx + 0x28]
mov dword [ebp + 0x24], edx
mov dword [ebp + 0x28], ecx
mov edx, dword [ebx + 0x2c]
mov ecx, dword [ebx + 0x30]
jmp 0x498c94
cmp dword [edx + 8], 0
je 0x498d45
lea eax, [edx + 0xc]
mov ecx, dword [edx + 0x14]
mov esi, edx
mov edx, dword [edx + 0x18]
push dword [eax]
call fcn.0049a988
pop ecx
mov ebx, edx
mov ecx, edi
mov edx, eax
push ebx
call fcn.004961e2
pop eax
movzx eax, byte [esp + 0xb4]
mov ebx, edi
mov edi, dword [esi + 0x20]
lea ecx, [esp + 0x14]
mov edx, ebx
push dword [esp + 0xb0]
push dword [esp + 0xb0]
mov dword [esp + 0x10], edi
push edi
push eax
call fcn.0049ac67
add esp, 0x10
lea eax, [esp + 0x14]
mov eax, dword [eax]
cmp eax, 2
jne 0x498c34
mov al, byte [esp + 0x18]
mov esi, ebx
mov byte [ebp + 4], al
mov dword [ebp], 2
mov ecx, dword [esi]
mov edx, dword [esi + 4]
call fcn.0049bc49
add esp, 0x98
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, dword [ebx + 8]
movsd xmm0, qword [ebx]
movsd xmm2, qword [esi + 0x3c]
movsd xmm1, qword [esi + 0x34]
mov edx, dword [esp + 0x1c]
mov dword [ebp + 0x18], ecx
mov cl, byte [esi + 0x44]
movsd qword [ebp + 0x10], xmm0
movsd qword [ebp + 0x3c], xmm2
movsd qword [ebp + 0x34], xmm1
mov byte [ebp + 0x44], cl
mov ecx, dword [esp + 0x18]
mov dword [ebp], eax
mov dword [ebp + 4], ecx
mov ecx, dword [esp + 0x20]
mov dword [ebp + 8], edx
mov edx, dword [esi + 0x1c]
mov dword [ebp + 0xc], ecx
mov ecx, dword [esp + 8]
mov dword [ebp + 0x1c], edx
mov edx, dword [esi + 0x24]
mov dword [ebp + 0x20], ecx
mov ecx, dword [esi + 0x28]
mov dword [ebp + 0x24], edx
mov edx, dword [esi + 0x2c]
mov dword [ebp + 0x28], ecx
mov ecx, dword [esi + 0x30]
mov dword [ebp + 0x2c], edx
mov dword [ebp + 0x30], ecx
jmp 0x498c29
cmp dword [ebx + 8], 0
je 0x498d52
lea eax, [ebx + 0xc]
mov ecx, dword [ebx + 0x14]
mov edx, dword [ebx + 0x18]
push dword [eax]
call fcn.0049a988
pop ecx
mov edi, edx
mov ebp, dword [esp]
mov edx, eax
mov ecx, ebp
push edi
call fcn.004961e2
pop eax
mov eax, dword [ebx + 0x30]
mov ecx, ebp
xor edx, edx
push eax
mov edi, eax
mov dword [esp + 0xc], eax
call fcn.0049b03f
pop eax
lea eax, [esp + 0x14]
mov ecx, ebp
xor edx, edx
mov byte [eax], 1
push dword [esp + 0xb0]
push dword [esp + 0xb0]
push edi
push esi
call fcn.00499832
add esp, 0x10
mov dword [esp + 4], eax
mov eax, edx
push 9
pop ecx
lea edx, [esp + 0x14]
mov esi, ebp
mov edi, edx
rep movsd dword es:[edi], dword [esi]
lea esi, [ebx + 0x34]
movzx edi, word [ebx + 0x1e]
mov ecx, dword [esp + 0xc]
push eax
push dword [esp + 8]
push dword [esp + 0x10]
push edi
push dword [ebx + 0x1c]
push esi
push dword [ebx + 0x2c]
push dword [ebx + 0x28]
push dword [ebx + 0x24]
push dword [ebx + 0x20]
push 0
call fcn.00499e13
add esp, 0x2c
jmp 0x498c29
mov eax, dword [edx + 0x14]
mov ebx, dword [edx + 0x18]
mov esi, edx
jmp 0x498bca
mov eax, dword [ebx + 0x14]
mov edi, dword [ebx + 0x18]
jmp 0x498cb9
mov ecx, 0x507894
call fcn.004a0660
mov ecx, 0x5078a4
call fcn.004a0660
push 0x2b
pop edx
mov ecx, str.called__Result::unwrap____on_an__Err__value
push 0x507938
push 0x507460
push ebx
call fcn.004a05e0