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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xc0
mov dword [esp + 0x88], ecx
call 0x461d45
pop eax
mov ecx, edx
mov dword [esp + 0xac], eax
call fcn.00462818
mov edi, dword [eax + 0x1a8]
cmp byte [eax + 0x168], 2
lea ebx, [eax + 0x158]
mov dword [esp + 0x18], eax
mov dword [esp + 0x68], eax
jne 0x461d9a
lea esi, [esp + 0x7c]
lea edx, [eax + 0x16c]
mov ecx, esi
push edi
push ebx
push dword [ebp + 8]
call fcn.004603d9
add esp, 0xc
mov bl, byte [esi]
cmp bl, 7
jne 0x4621f5
jmp 0x46222d
mov dword [esp + 0x70], ebx
lea ebx, [eax + 0x190]
lea esi, [esp + 0x20]
lea edx, [eax + 0x174]
mov ecx, esi
push edi
push ebx
push dword [ebp + 8]
call fcn.004603d9
add esp, 0xc
cmp byte [esi], 7
je 0x461dce
mov eax, dword [esp + 0x20]
cmp al, 7
jne 0x4621e6
mov eax, dword [esp + 0x18]
mov edx, dword [eax + 0x194]
test edx, edx
je 0x4621e2
mov eax, 0xffffff
cmp edi, eax
cmovb eax, edi
test eax, eax
mov dword [esp + 0xa0], eax
je 0x4627d1
mov eax, dword [esp + 0x18]
mov edi, dword [ebx]
mov esi, dword [esp + 0x70]
mov cl, byte [eax + 0x1a4]
mov eax, dword [eax + 0x1a0]
mov dword [esp + 0x8c], eax
test edx, edx
je 0x462212
mov ebx, dword [esp + 0xa0]
mov dword [esp + 0x6c], ecx
mov dword [esp + 0xa4], edx
mov ecx, esi
cmp edx, ebx
cmovb ebx, edx
lea edx, [ebx + 7]
call fcn.00479be0
mov eax, dword [esp + 0x6c]
cmp dword [esp + 0x8c], 0
movzx eax, al
mov dword [esp + 0x90], eax
je 0x46214c
cmp ebx, 0x31
jbe 0x46214c
xor edx, edx
mov ecx, 0x8000
mov dword [esp + 0x94], ebx
mov dword [esp + 0x84], edi
inc edx
call fcn.00426eaa
lea ecx, [esp + 0x50]
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], edx
mov dword [esp + 0x58], 0x8000
call fcn.004d84bf
mov esi, eax
mov edi, edx
call fcn.00448958
mov ebx, eax
push 0x38
push str.1.2.8
push 0
push 8
pop eax
push eax
push 0xf
push eax
push dword [esp + 0xa4]
push ebx
call fcn.00579170
add esp, 0x20
test eax, eax
mov dword [esp + 0xc], eax
jne 0x4627bc
lea eax, [esp + 0x38]
mov edx, dword [esp + 0x94]
mov dword [esp + 8], 0
mov dword [esp + 0x14], 0
and dword [eax + 8], 0
and dword [eax], 0
and dword [eax + 4], 0
and dword [eax + 0xc], 0
mov eax, dword [esp + 0x84]
mov dword [esp + 0x48], ebx
xor ebx, ebx
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], edx
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], edi
and dword [esp + 0x30], 0
and dword [esp + 0x34], 0
mov esi, dword [esp + 0x44]
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
mov dword [esp + 4], esi
mov esi, dword [esp + 0x40]
mov dword [esp + 0x1c], eax
mov dword [esp], ecx
mov edi, esi
mov esi, dword [esp + 0x70]
sub edx, ebx
mov eax, 0
cmovb edx, eax
cmp edx, 1
adc edx, 0
mov ecx, esi
call fcn.00479be0
mov ecx, esi
call fcn.0045d29c
lea ecx, [ebx + 7]
mov dword [esp + 0x74], edx
mov dword [esp + 0xa8], ebx
sub edx, ecx
mov dword [esp + 0xb4], edx
jb 0x462787
mov ebx, dword [esp + 0x48]
add eax, ecx
mov esi, edi
mov dword [esp + 0x98], ecx
mov dword [esp + 0xb0], eax
lea ecx, [esp + 0x50]
lea edx, [esp + 0x20]
call fcn.00474b8f
cmp dword [esp + 0x50], 0
mov edi, dword [esp + 0x58]
jne 0x462089
mov dword [esp + 0x78], esi
mov esi, dword [esp + 0x54]
xor eax, eax
test edi, edi
mov dword [esp + 0x9c], edi
mov ecx, dword [esp + 0xb4]
sete al
and dword [ebx + 0x18], 0
shl eax, 2
mov dword [ebx], esi
mov dword [ebx + 4], edi
mov edi, dword [esp + 0xb0]
mov dword [ebx + 0xc], edi
mov dword [ebx + 0x10], ecx
push eax
push ebx
call fcn.005780a0
pop ecx
pop edx
mov ecx, dword [ebx]
mov edx, 0
sub ecx, esi
mov esi, dword [esp + 0x78]
add dword [esp], ecx
mov ecx, dword [ebx + 0xc]
adc dword [esp + 0x1c], edx
sub ecx, edi
add esi, ecx
mov ecx, dword [esp + 4]
adc ecx, edx
and dword [ebx], 0
and dword [ebx + 4], 0
and dword [ebx + 0xc], 0
and dword [ebx + 0x10], 0
mov edx, ecx
lea ecx, [eax + 5]
cmp ecx, 6
ja 0x4626ca
mov ecx, dword [ecx*4 + 0x4627fc]
mov dword [esp + 4], edx
add ecx, dword [esp + 0xac]
jmp ecx
mov ebx, dword [esp + 0x54]
cmp bl, 4
je 0x462098
jne 0x462195
mov eax, edi
jmp 0x4620cd
mov edi, dword [esp + 0xa8]
mov edx, dword [esp + 0x94]
test eax, eax
lea ebx, [eax + edi]
jne 0x461f3b
mov eax, dword [esp]
mov ebx, dword [esp + 0x1c]
mov ecx, dword [esp + 4]
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x38], eax
mov dword [esp + 0x40], esi
mov esi, dword [esp + 0x70]
mov dword [esp + 0x44], ecx
mov ebx, edx
mov edx, edi
mov ecx, esi
push 0
call fcn.00476524
pop eax
mov edx, dword [esp + 0x90]
mov ecx, esi
call fcn.00476555
mov ecx, esi
mov edx, ebx
push 0
call fcn.00476524
pop eax
mov ecx, esi
mov edx, edi
call fcn.00479c18
lea ecx, [esp + 0x20]
call fcn.00479bf4
mov ecx, dword [esp + 0x6c]
mov edi, dword [esp + 0x84]
jmp 0x462183
mov ecx, esi
mov edx, ebx
push 0
call fcn.00476524
pop eax
mov edx, dword [esp + 0x90]
mov ecx, esi
call fcn.00476555
mov ecx, esi
xor edx, edx
push 0
call fcn.00476524
pop eax
mov ecx, esi
mov edx, edi
push ebx
call fcn.004366a9
mov ecx, dword [esp + 0x70]
add esp, 4
mov edx, dword [esp + 0xa4]
add edi, ebx
inc cl
sub edx, ebx
jmp 0x461e16
mov eax, dword [esp]
lea ecx, [esp + 0x20]
mov edx, dword [esp + 4]
mov dword [ecx + 0x18], eax
mov eax, dword [esp + 0x1c]
mov dword [ecx + 0x1c], eax
mov dword [ecx + 0x20], esi
mov dword [ecx + 0x24], edx
call fcn.00479bf4
cmp bl, 7
mov cl, bh
je 0x46221d
mov eax, ebx
mov ecx, ebx
movzx edx, bl
mov dword [esp + 0x80], edi
and eax, 0xffff0000
and ecx, 0xff00
or edx, eax
or edx, ecx
mov dword [esp + 0x7c], edx
jmp 0x461d8c
xor ecx, ecx
jmp 0x46221d
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], ecx
mov eax, dword [esp + 0x7c]
cmp al, 7
je 0x46222d
mov edx, dword [esp + 0x80]
mov ecx, eax
shrd ecx, edx, 8
shr edx, 8
jmp 0x462695
mov eax, dword [esp + 0x18]
and dword [eax + 0x194], 0
mov eax, dword [esp + 0x18]
mov byte [eax + 0x1a4], cl
mov byte [eax + 0x17c], cl
mov eax, dword [esp + 0x68]
lea ecx, [eax + 0x14]
lea edx, [eax + 0x40]
add eax, 0x18
mov dword [esp + 8], ecx
mov dword [esp + 0x14], edx
mov dword [esp + 0x78], eax
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0x28]
mov ebx, dword [ecx + 0x158]
mov edi, dword [ecx + 0x15c]
cmp eax, 3
je 0x462334
cmp eax, 4
jne 0x4623e4
test edi, edi
je 0x4624ba
mov eax, dword [esp + 0x18]
mov dword [esp + 4], ebx
xor ebx, ebx
cmp dword [eax + 0x50], 2
je 0x462287
mov ebx, dword [esp + 0x14]
mov ecx, ebx
mov edx, 0x63f240
call fcn.0045fca1
mov eax, dword [ebx]
mov esi, dword [ebx + 8]
sub eax, esi
cmp eax, edi
jbe 0x4622c9
mov eax, dword [ebx + 4]
add eax, esi
push edi
mov dword [esp + 4], edi
mov edi, dword [esp + 8]
push edi
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
add esi, dword [esp]
mov dword [ebx + 8], esi
mov ebx, edi
mov edi, dword [esp]
mov ecx, edi
sub edi, ecx
add ebx, ecx
jmp 0x46226b
lea esi, [esp + 0x20]
mov edx, ebx
mov ecx, esi
push edi
mov ebx, dword [esp + 8]
push ebx
call fcn.0046034f
pop eax
pop ecx
cmp byte [esp + 0x20], 4
jne 0x4622fa
mov ecx, dword [esp + 0x24]
test ecx, ecx
je 0x46246e
cmp ecx, edi
jbe 0x4622c3
jmp 0x4627b0
mov ecx, esi
call fcn.0045f892
test al, al
je 0x46247f
push esi
call fcn.0045c928
pop eax
jmp 0x46226b
cmp ecx, edi
jbe 0x46238e
jmp 0x4627b0
mov ecx, esi
call fcn.0045f892
test al, al
je 0x46247f
push esi
call fcn.0045c928
pop eax
test edi, edi
je 0x4624ba
mov eax, dword [esp + 8]
mov dword [esp + 4], ebx
xor ebx, ebx
cmp dword [eax], 0x80000000
je 0x462352
mov ebx, dword [esp + 8]
mov ecx, ebx
mov edx, 0x63f240
call fcn.0045d6c0
mov eax, dword [ebx]
mov esi, dword [ebx + 8]
sub eax, esi
cmp eax, edi
jbe 0x462394
mov eax, dword [ebx + 4]
add eax, esi
push edi
mov dword [esp + 4], edi
mov edi, dword [esp + 8]
push edi
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
add esi, dword [esp]
mov dword [ebx + 8], esi
mov ebx, edi
mov edi, dword [esp]
mov ecx, edi
sub edi, ecx
add ebx, ecx
jmp 0x462334
lea esi, [esp + 0x20]
mov edx, ebx
mov ecx, esi
push edi
mov ebx, dword [esp + 8]
push ebx
call fcn.0046023b
pop eax
pop ecx
cmp byte [esp + 0x20], 4
jne 0x46231e
mov ecx, dword [esp + 0x24]
test ecx, ecx
jne 0x462315
jmp 0x46246e
cmp ecx, edi
jbe 0x46243c
jmp 0x4627b0
mov ecx, esi
call fcn.0045f892
test al, al
je 0x46247f
push esi
call fcn.0045c928
pop eax
test edi, edi
je 0x4624ba
mov eax, dword [esp + 0x18]
mov dword [esp + 4], ebx
xor ebx, ebx
cmp dword [eax + 0x28], 2
je 0x462400
mov ebx, dword [esp + 0x78]
mov ecx, ebx
mov edx, 0x63f240
call fcn.0045f8e4
mov eax, dword [ebx]
mov esi, dword [ebx + 8]
sub eax, esi
cmp eax, edi
jbe 0x462442
mov eax, dword [ebx + 4]
add eax, esi
push edi
mov dword [esp + 4], edi
mov edi, dword [esp + 8]
push edi
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
add esi, dword [esp]
mov dword [ebx + 8], esi
mov ebx, edi
mov edi, dword [esp]
mov ecx, edi
sub edi, ecx
add ebx, ecx
jmp 0x4623e4
lea esi, [esp + 0x20]
mov edx, ebx
mov ecx, esi
push edi
mov ebx, dword [esp + 8]
push ebx
call fcn.004602c5
pop eax
pop ecx
cmp byte [esp + 0x20], 4
jne 0x4623ce
mov ecx, dword [esp + 0x24]
test ecx, ecx
jne 0x4623c5
mov byte [esp + 0x50], 2
mov dword [esp + 0x54], 0x69f2f8
mov al, 2
jmp 0x46248f
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x54], ecx
mov dword [esp + 0x50], eax
cmp al, 4
je 0x4624ba
lea esi, [esp + 0x50]
mov ecx, esi
call fcn.0045d2c3
cmp al, 0x23
jne 0x4624ae
mov ecx, esi
call fcn.0045d60c
jmp 0x462246
mov eax, dword [esp + 0x50]
cmp al, 4
jne 0x4626bc
mov eax, dword [esp + 0x18]
and dword [eax + 0x15c], 0
mov eax, dword [esp + 0x68]
lea ebx, [esp + 0xc]
lea esi, [eax + 0x14]
lea ecx, [eax + 0x40]
add eax, 0x18
mov dword [esp], ecx
mov dword [esp + 0x68], eax
mov dword [esp + 4], esi
mov eax, dword [esp + 0x18]
xor edi, edi
mov eax, dword [eax + 0x28]
cmp eax, 3
je 0x462548
cmp eax, 4
jne 0x46257c
mov eax, dword [esp + 0x18]
cmp dword [eax + 0x50], 2
je 0x462505
mov edi, dword [esp]
mov ecx, edi
mov edx, 0x63f230
call fcn.0045fca1
lea ecx, [esp + 0x20]
mov edx, edi
call fcn.0046019b
cmp byte [esp + 0x20], 4
jne 0x4625e2
push dword [edi + 0x28]
call sub.KERNEL32.DLL_FlushFileBuffers
test eax, eax
jne 0x462570
call sub.KERNEL32.DLL_GetLastError
and dword [esp + 0xc], 0
mov dword [esp + 0x10], eax
xor eax, eax
jmp 0x462652
cmp dword [esi], 0x80000000
je 0x462552
mov edi, esi
mov ecx, edi
mov edx, 0x63f230
call fcn.0045d6c0
lea ecx, [esp + 0x20]
mov edx, edi
call fcn.0045feba
cmp byte [esp + 0x20], 4
jne 0x4625e2
mov byte [esp + 0xc], 4
mov al, 4
jmp 0x462652
cmp eax, 2
je 0x462585
mov edi, dword [esp + 0x68]
mov ecx, edi
mov edx, 0x63f230
call fcn.0045f8e4
lea ecx, [esp + 0x50]
mov edx, edi
call fcn.0045ff54
cmp byte [esp + 0x50], 4
jne 0x4625ec
lea ebx, [edi + 0x10]
lea esi, [edi + 0x128]
lea ecx, [esp + 0x20]
mov edx, ebx
push esi
call fcn.0045d87a
pop eax
cmp byte [esp + 0x20], 4
je 0x4625c8
mov eax, dword [esp + 0x20]
cmp al, 4
jne 0x462635
push ebx
lea eax, [esp + 0x24]
push eax
call fcn.004600f4
pop eax
pop ecx
cmp byte [esp + 0x20], 4
jne 0x4625fe
lea ecx, [esp + 0x20]
jmp 0x46260a
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
jmp 0x4625f4
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], eax
jmp 0x462652
mov eax, dword [esp + 0x20]
lea ecx, [esp + 0x20]
cmp al, 4
jne 0x462635
cmp dword [edi + 0x84], 0
je 0x462643
mov edx, ebx
push esi
call fcn.0045d8e1
pop eax
cmp dword [esp + 0x20], 0
je 0x462643
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], eax
jmp 0x46264a
mov ecx, dword [esp + 0x24]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
jmp 0x46264a
mov al, 4
mov byte [esp + 0xc], 4
mov esi, dword [esp + 4]
lea ebx, [esp + 0xc]
cmp al, 4
je 0x462686
mov ecx, ebx
call fcn.0045d2c3
cmp al, 0x23
jne 0x46266d
mov ecx, ebx
call fcn.0045d60c
jmp 0x4624e1
mov eax, dword [esp + 0xc]
cmp al, 4
je 0x462686
mov edx, dword [esp + 0x10]
mov ecx, eax
shrd ecx, edx, 8
shr edx, 8
cmp al, 7
jne 0x462695
mov eax, dword [esp + 0x88]
mov dword [eax], 8
jmp 0x4626b4
mov esi, dword [esp + 0x88]
shld edx, ecx, 8
movzx eax, al
shl ecx, 8
or ecx, eax
mov dword [esi], 1
mov dword [esi + 8], edx
mov dword [esi + 4], ecx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
cmp al, 7
je 0x4624c5
mov edx, dword [esp + 0x54]
jmp 0x462679
mov ecx, dword [esp]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x40], esi
mov dword [esp + 0x44], edx
xor edx, edx
lea ecx, [esp + 0xb8]
lea esi, [esp + 0xc]
mov dword [esi], ecx
mov dword [ecx], eax
lea ecx, [esp + 0x50]
inc edx
mov dword [esi + 4], fcn.00445500
mov dword [ecx], 0x62bfd4
mov dword [ecx + 4], edx
and dword [ecx + 0x10], 0
mov dword [ecx + 8], esi
mov dword [ecx + 0xc], edx
mov edx, 0x62bffc
call fcn.00439fc0
mov eax, dword [esp]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x40], esi
mov dword [esp + 0x44], edx
mov ecx, dword [ebx + 0x18]
test ecx, ecx
jne 0x46273d
xor eax, eax
jmp 0x462763
call fcn.004489fc
mov esi, edx
lea edi, [esp + 0x50]
mov edx, eax
dec esi
mov ecx, edi
push esi
call fcn.0043e6d0
pop eax
xor eax, eax
cmp dword [edi], 0
jne 0x46275f
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], ecx
push 0x2b
pop edx
mov ecx, str.called__Result::unwrap____on_an__Err__value
push 0x62c070
push 0x62bf1c
lea eax, [esp + 0x58]
push eax
call fcn.0043f6f0
mov eax, dword [esp]
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 4]
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], esi
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x74]
mov dword [esp + 0x40], edi
push 0x641a50
call fcn.00439ff0
mov edx, edi
push 0x69f304
call fcn.00439ff0
lea edx, [esp + 0x50]
lea ecx, [esp + 0xc]
and dword [edx], 0
push 0x62bfec
call fcn.0044892b
lea ecx, [esp + 0x20]
mov edx, 0x641a40
mov dword [ecx], str.chunk_size_must_be_non_zero
mov dword [ecx + 4], 1
and dword [ecx + 0x10], 0
mov dword [ecx + 8], 0x6c4590
and dword [ecx + 0xc], 0
call fcn.00439fc0
nop
cli
add al, byte [eax]
add byte [ebp - 0x7afffff7], al
or dword [eax], eax
add dh, dl
or dword [eax], eax
add byte [ebp - 0x5fffff7], al
add al, byte [eax]
add byte [eax + 3], ah
add byte [eax], al